用散点图覆盖分组条形图
Posted
技术标签:
【中文标题】用散点图覆盖分组条形图【英文标题】:Overlay a grouped bar chart with scatter in plotly 【发布时间】:2019-07-02 15:13:51 【问题描述】:我正在尝试将散点图叠加在分组条形图的顶部。然而,在简单的条形图中,散点正确地放置在各个条的顶部,而在分组条形图中,散点不会自动调整。
这是一个演示问题的示例:
set.seed(1)
d1 <- data.frame(x=rep(c('a', 'b', 'c'), each=2),
y=rnorm(6, mean=10),
c=rep(c('q', 'r'), times=3))
d2 <- d1[d1$c=='q', ]
p1 <- plot_ly(data=d2, x=~x, y=~y, type='bar')
p2 <- add_trace(p1, data=d2, x=~x, y=~y,
type='scatter', mode='markers', marker=list(size=20))
p3 <- plot_ly(data=d1, x=~x, y=~y, color=~c, type='bar')
p4 <- add_trace(p3, data=d1, x=~x, y=~y,
type='scatter', mode='markers', marker=list(size=20))
subplot(p1, p2, p3, p4, nrows=2)
这会生成下图:
而在右上角的面板 (p2) 中,点被放置在它们各自的条上,而在右下角 (p4) 中,点不会根据颜色因子进行调整。
我可以想象通过将x
设置为数字变量并手动、少量调整点等来解决这个问题。但这似乎相当乏味。有没有简单的方法来进行调整?
(显然,目标不是让单个点显示每个条的顶部,而是用整个云覆盖条)
【问题讨论】:
【参考方案1】:取决于你想要做什么,你可以使用error bars,你可以使用width
、thickness
和color
参数让它看起来像一个普通的散点图(width
指到末端的线,thickness
到胡须,thickness = 0
应该把它们拿出来)。
【讨论】:
我知道这可能对单个点起作用,但是您如何使它对整个散点云起作用?以上是关于用散点图覆盖分组条形图的主要内容,如果未能解决你的问题,请参考以下文章
100天精通Python(可视化篇)——第82天:matplotlib绘制不同种类炫酷散点图参数说明+代码实战(二维散点图三维散点图散点图矩阵)
R语言可视化:散点图散点图和折线图(line charts)3D散点图旋转3D散点图气泡图corrgram包可视化相关性矩阵马赛克图( Mosaic plots)hexbin密度图