gpt4 book ai didi

r - 如何将表格添加到我的 ggplot2 输出?

转载 作者:行者123 更新时间:2023-12-04 03:21:55 27 4
gpt4 key购买 nike

有没有一种快速的方法可以将表格添加到我的 ggplot2 图表中?我希望这个表的每一行的值都在 scale_x_continuous() 中指定的相同断点处。 , 但旁边有百分比 (%) 符号。我的最终目标是创建如下图所示的内容。但是,我不知道如何添加表格。

gains chart example

下面的代码块在 ggplot2 中只写了两行,应该足以为我提供一个示例:

require(ggplot2)
df <- data.frame(a = seq(0, 90, 10), b = seq(10, 100, 10))
df.plot <- ggplot(data = df, aes(x = seq(1, 100, 10))) + geom_line(aes(y = a), colour = 'red') +
geom_line(aes(y = b), colour = 'blue') + scale_x_continuous(breaks = seq(0,100,10))
df.plot

有人问过类似的问题 here ,但给出的答案更像是一种解决方法,对于有 2 行的表来说看起来不太好。我打算弄乱Brian Diggs提供的线索,但我想我会发布这个,以防有人已经做过这样的事情。任何帮助将不胜感激!

编辑:感谢@baptiste 帮助我解决这个问题。我在下面发布了我自己的回复,完成了他开始的工作。

最佳答案

这是学习者使用的策略的基本示例:

require(ggplot2)
df <- data.frame(a = seq(0, 90, 10), b = seq(10, 100, 10))
df.plot <- ggplot(data = df, aes(x = seq(1, 100, 10))) +
geom_line(aes(y = a), colour = 'red') +
geom_line(aes(y = b), colour = 'blue') +
scale_x_continuous(breaks = seq(0,100,10))

# make dummy labels for the table content
df$lab <- month.abb[ceiling((df$a+1)/10)]

df.table <- ggplot(df, aes(x = a, y = 0,
label = lab, colour = b)) +
geom_text(size = 3.5) +
theme_minimal() +
scale_y_continuous(breaks=NULL)+
theme(panel.grid.major = element_blank(), legend.position = "none",
panel.border = element_blank(), axis.text.x = element_blank(),
axis.ticks = element_blank(),
axis.title.x=element_blank(),
axis.title.y=element_blank())

gA <- ggplotGrob(df.plot)
gB <- ggplotGrob(df.table)[6,]
gB$heights <- unit(1,"line")


require(gridExtra)
gAB <- rbind(gA, gB)
grid.newpage()
grid.draw(gAB)

enter image description here

关于r - 如何将表格添加到我的 ggplot2 输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16680063/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com