如何在 r 中使用 plotly 更改 x 轴布局 [英] How to change x-axis layout using plotly in r

查看:75
本文介绍了如何在 r 中使用 plotly 更改 x 轴布局的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I'm trying to customise the x-axis. I currently have the "Site" variable on the x-axis. The range is from 15 to 24 with site a and b for each number i.e. for 15, there is 15a and b (and so on to 24). When I label all bars, it looks messy and I'm trying to customise it so for example, the number 15 is below but the individual bars are labelled a and b. This way, the individual bars will be identifiable but it won't look so crowded.

这是我目前的代码:

#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

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

Any help/other ideas of how to do this will be much appreciated!

推荐答案

这里有一些可以帮助你的东西.你可以使用 shapesannotations 来获得你想要的东西.

Here is something to help you. You can play with shapes and annotations to get exatly what you want.

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"
           )
         )
         )

这篇关于如何在 r 中使用 plotly 更改 x 轴布局的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆