首页 > 解决方案 > 如何在 r 中使用 plotly 更改 x 轴布局

问题描述

我正在尝试自定义 x 轴。我目前在 x 轴上有“站点”变量。范围是从 15 到 24,每个数字都有站点 a 和 b,即对于 15,有 15a 和 b(依此类推到 24)。当我标记所有条时,它看起来很乱,我正在尝试对其进行自定义,例如,数字 15 在下方,但各个条标记为 a 和 b。这样,各个酒吧将是可识别的,但看起来不会那么拥挤。 目前的条形图

到目前为止,这是我的代码:

#Stacked bar chart exp2 
BarChartData2 <- read.csv("Bar chart data exp 2.csv")
Site <- BarChartData2[,4]
Card <- BarChartData2[,2]
Pen <- BarChartData2[,3]
data2 <- data.frame(Site, Card, Pen)
pstacked2 <- plot_ly(data2, x = ~Site, y = ~Card, type = 'bar', name = 'Card', marker = list(color = 'Black')) %>%
  add_trace(y = ~Pen, name = 'Pen', marker = list(color = 'red')) %>%
 layout(yaxis = list(title = 'Number of Bee Visits'), barmode = 'stack',  font = list(family = 'Times New Roman', size =14, color ="black"), xaxis = list(autotick = F, dtick = 2))
pstacked2

任何有关如何执行此操作的帮助/其他想法将不胜感激!

标签: rr-plotly

解决方案


这里有一些可以帮助你的东西。你可以玩shapesannotations得到你想要的东西。

plot_ly(data2, x = ~Site, y = ~Card, type = 'bar', name = 'Card', marker = list(color = 'Black')) %>%
  add_trace(y = ~Pen, name = 'Pen', marker = list(color = 'red')) %>%
  layout(yaxis = list(title = 'Number of Bee Visits'), 
         barmode = 'stack',  
         font = list(family = 'Times New Roman', size =14, color ="black"), 
         xaxis = list(autotick = F, dtick = 2),
         margin = list(
           r = 10, 
           t = 25, 
           b = 100, 
           l = 110
         ),
         shapes = list(
           list(
             line = list(
               color = "rgba(68, 68, 68, 0.5)", 
               width = 1
             ), 
             type = "line", 
             x0 = 0, 
             x1 = 1, 
             xref = "paper", 
             y0 = -0.05, 
             y1 = -0.05, 
             yref = "paper"
           )
         ),
         annotations = list(
           list(
             x = 0.04, 
             y = -0.1, 
             showarrow = FALSE, 
             text = "15", 
             xref = "paper", 
             yref = "paper"
           ), 
           list(
             x = 0.14, 
             y = -0.1, 
             showarrow = FALSE, 
             text = "16", 
             xref = "paper", 
             yref = "paper"
           ), 
           list(
             x = 0.24, 
             y = -0.1, 
             showarrow = FALSE, 
             text = "17", 
             xref = "paper", 
             yref = "paper"
           ), 
           list(
             x = .35, 
             y = -0.1, 
             showarrow = FALSE, 
             text = "18", 
             xref = "paper", 
             yref = "paper"
           ),
           list(
             x = .45, 
             y = -0.1, 
             showarrow = FALSE, 
             text = "19", 
             xref = "paper", 
             yref = "paper"
           ),
           list(
             x = .55, 
             y = -0.1, 
             showarrow = FALSE, 
             text = "20", 
             xref = "paper", 
             yref = "paper"
           ),
           list(
             x = .65, 
             y = -0.1, 
             showarrow = FALSE, 
             text = "21", 
             xref = "paper", 
             yref = "paper"
           ),
           list(
             x = .75, 
             y = -0.1, 
             showarrow = FALSE, 
             text = "22", 
             xref = "paper", 
             yref = "paper"
           ),
           list(
             x = .85, 
             y = -0.1, 
             showarrow = FALSE, 
             text = "23", 
             xref = "paper", 
             yref = "paper"
           ),
           list(
             x = .95, 
             y = -0.1, 
             showarrow = FALSE, 
             text = "24", 
             xref = "paper", 
             yref = "paper"
           )
         )
         )

在此处输入图像描述


推荐阅读