R 使用geom_条形图移动注释_自定义创建的表格
我试图寻找答案,但什么也找不到 我有一个绘图,希望在绘图本身中添加一个表。我能做到,但是桌子正好在中间。 如果x轴是离散的,则可以重新定位由注释_custom创建的表?如果是,怎么做 谢谢大家! 例如,我想重新定位此表R 使用geom_条形图移动注释_自定义创建的表格,r,ggplot2,geom-bar,R,Ggplot2,Geom Bar,我试图寻找答案,但什么也找不到 我有一个绘图,希望在绘图本身中添加一个表。我能做到,但是桌子正好在中间。 如果x轴是离散的,则可以重新定位由注释_custom创建的表?如果是,怎么做 谢谢大家! 例如,我想重新定位此表 library(ggplot2) library(gridExtra) my.summary <- summary(chickwts$weight) my.table <- data.frame(ids = names(my.summary), nums = a
library(ggplot2)
library(gridExtra)
my.summary <- summary(chickwts$weight)
my.table <- data.frame(ids = names(my.summary), nums = as.numeric(my.summary))
ggplot(chickwts, aes(feed, weight)) +
geom_bar(stat = "identity") +
annotation_custom(tableGrob(my.table))
库(ggplot2)
图书馆(gridExtra)
my.summary可以在绘图区域内重新排列ggplot2
中的自定义注释。这至少会将它们移出中心。也许这个解决方案对你来说已经足够了。我会试着调整一下。也可以将其放置在绘图区域之外
library(ggplot2)
library(gridExtra)
my.summary <- summary(chickwts$weight)
my.table <- data.frame(ids = names(my.summary), nums = as.numeric(my.summary))
ggplot(chickwts, aes(feed, weight)) +
geom_bar(stat = "identity") +
annotation_custom(tableGrob(my.table), xmin=5,xmax=6,ymin=300,ymax=1300)
请提供一个小的、可复制的数据示例。帮助你得到你想要的结果会容易得多。谢谢你的建议。因此,在这种情况下,x-min和x-max的数值是离散的,y-min和y-man的数值是连续的。但是,更改这些值不会移动正在使用的绘图上的表格:(更新了我的答案,包含了一个放置表格的解决方案(在绘图内部/外部,无所谓),而不管绘图类型。让我知道这是否是正确的方向。对于第二个选项,可能更容易使用grid.arrange
例如,grid.arrange(plt,my.tGrob,ncol=2)
。您可以使用宽度
参数对间距进行更多的控制。这对于我的示例来说确实不太复杂。我选择了常规的网格
包,因为如果需要,它还允许在绘图中放置。网格。排列
在这里仅限于并排放置。太棒了。谢谢谢谢你的帮助。
library(ggplot2)
library(gridExtra)
library(grid)
# data
my.summary <- summary(chickwts$weight)
my.table <- data.frame(ids = names(my.summary), nums = as.numeric(my.summary))
# plot items
my.tGrob <- tableGrob(my.table)
plt <- ggplot(chickwts, aes(feed, weight)) +
geom_bar(stat = "identity")
# layout
vp.layout <- grid.layout(nrow=1, ncol=2, heights=unit(1, "null"),
widths=unit(c(1,9), c("null","line")) )
# start drawing
grid.newpage()
pushViewport(viewport(layout=vp.layout, name="layout"))
# plot
pushViewport(viewport(layout.pos.row=1, layout.pos.col=1, name="plot"))
print(plt, newpage=FALSE)
upViewport()
# table
pushViewport(viewport(layout.pos.row=1, layout.pos.col=2, name="table"))
grid.draw(my.tGrob)
upViewport()
#dev.off()