R - ggplot - geom_bar 的圆形末端

Posted

技术标签:

【中文标题】R - ggplot - geom_bar 的圆形末端【英文标题】:R - ggplot - Rounded extremity for geom_bar 【发布时间】:2015-07-02 23:23:15 【问题描述】:

这是我的条形图的一个简单示例:

x <- data.frame(aa=c(0.2,0.6,0.1), dd = c(1,2,3))
x <- melt(x, "dd")
y <- data.frame(bb=c(0.4,0.5), dd = c(1,2))
y <- melt(y, "dd")
z <- data.frame(cc=c(0.5,0.25,0.1,0.05), dd = c(1,2,3,4))
z <- melt(z, "dd")

x=rbind(x,y,z)

col=c("white","grey","blue","white","red","white","green","blue","green")
ggplot(x, aes(x = variable, y = value)) + geom_bar(stat = "identity", fill = col)

我想知道是否有办法让我的条形结束,比如 lineend 选项 (http://sape.inf.usi.ch/quick-reference/ggplot2/lineend) ?

【问题讨论】:

我对此表示怀疑,想看看有没有人知道这个问题的解决方案。 在 barplot 中,您需要比较不同条形的高度。因此,边缘需要尽可能直。美学不是唯一要考虑的事情。绘图的目的不同。 使用ggbio package、Ideogram函数 或者这里是一个起点:ggplot(x, aes(x=variable, y=value)) + geom_path(size=10, lineend="round",col=col) @JustinB 如果您知道如何使用geom_path() 制作圆角,您介意发布答案吗?我很好奇它是怎么出来的。 【参考方案1】:

这是一个带有圆形末端的条形示例,与 geom_line (geom_path) 一起使用,作为一个最小示例。

df1 <- data.frame( x=c(1,1,2,2,3,3),
                   y=c(1,7,1,4,1,5),
                   chr=c("one","one","two","two","three","three") )

ggplot( df1, aes(x,y, col=chr) ) + geom_line( lineend="round", lwd=10 )

【讨论】:

以上是关于R - ggplot - geom_bar 的圆形末端的主要内容,如果未能解决你的问题,请参考以下文章

在 ggplot2 r 中操纵 geom_bar 和 coord_polar 的描绘

在 R 中将 <f6> 更改为瑞典字符和相关的 ggplot geom_bar 问题

R语言ggplot2可视化时避免geom_bar对x轴进行排序实战:直接对因子变量进行提前排序后再进行可视化使用scale_x_discrete函数限定因子顺序

R ggplot 作图

R语言ggplot2可视化:ggplot2使用geom_mark_ellipse函数进行椭圆形圈定(注释)特定的数据簇或组(只为椭圆形圈定的数据集配置色彩)

ggplot geom_bar:aes的含义(组= 1)