plotly 中的多级 x 轴
multi-level x axis in plotly
如果多级 x 轴可用于 plotly,我没有找到任何信息。我想可以在 ggplot2 中完成(例如 this SO thread),然后用 ggplotly()
转换它,但我更喜欢 plotly 解决方案。这可能吗?目前我正在使用一个辅助列,它将年和月连接到格式“2017-12”。
示例数据集:
data.frame(
year = c(2017, 2018, 2018, 2017, 2018, 2018),
month = c(12, 1, 2, 12, 1, 2),
value = c(120, 110, 130, 90, 100, 110)
)
结果应如下所示(x 轴上的年份和月份):
由于您的 x 轴值只是新行分隔值,您可以 paste
两列并用 HTML 换行符 <br />
分隔它们。标签分配给 x-xaxis 刻度。
library('plotly')
df <- data.frame(
year = c(2017, 2018, 2018, 2017, 2018, 2018),
month = c(12, 1, 2, 12, 1, 2),
value = c(120, 110, 130, 90, 100, 110)
)
xaxis <- list('tickvals'= seq(1, length(df$year)),
'ticktext' = paste(df$month, df$year, sep='<br />'),
'tickmode' = 'array')
plot_ly(y=df$value, x=seq(1, length(df$year)), mode='lines', type='scatter') %>% layout(xaxis = xaxis)
如果多级 x 轴可用于 plotly,我没有找到任何信息。我想可以在 ggplot2 中完成(例如 this SO thread),然后用 ggplotly()
转换它,但我更喜欢 plotly 解决方案。这可能吗?目前我正在使用一个辅助列,它将年和月连接到格式“2017-12”。
示例数据集:
data.frame(
year = c(2017, 2018, 2018, 2017, 2018, 2018),
month = c(12, 1, 2, 12, 1, 2),
value = c(120, 110, 130, 90, 100, 110)
)
结果应如下所示(x 轴上的年份和月份):
由于您的 x 轴值只是新行分隔值,您可以 paste
两列并用 HTML 换行符 <br />
分隔它们。标签分配给 x-xaxis 刻度。
library('plotly')
df <- data.frame(
year = c(2017, 2018, 2018, 2017, 2018, 2018),
month = c(12, 1, 2, 12, 1, 2),
value = c(120, 110, 130, 90, 100, 110)
)
xaxis <- list('tickvals'= seq(1, length(df$year)),
'ticktext' = paste(df$month, df$year, sep='<br />'),
'tickmode' = 'array')
plot_ly(y=df$value, x=seq(1, length(df$year)), mode='lines', type='scatter') %>% layout(xaxis = xaxis)