gpt4 book ai didi

r - bar_plot ggplot : conflict between values on bar and x axis label

转载 作者:行者123 更新时间:2023-12-02 05:14:15 25 4
gpt4 key购买 nike

我正在努力使用我的代码来使用 ggplot2 创建一个条形图,我尝试在其中添加 y条形图顶部的值,但不移动 x 的标签轴。 geom_text非常适合在条形图上添加值,但我无法调整 x旋转 45˚ 时轴标签正确(即标签的最后一个字母贴在轴上)。

我的数据

 dput(graph)
structure(list(x = structure(1:9, .Label = c("AAAAAAAAAAAAA",
"BBBBBBBB", "CCCCCCCCCCCCCCCC", "DDDDD", "EEEEEEEE", "FFFFFFF",
"GGGGGGGGGGGGGGG", "HHHHHHHHHHHHHH", "IIIII"), class = "factor"),
y = c(1L, 5L, 10L, 1000L, 20L, 15L, 45L, 30L, 35L)), .Names = c("x",
"y"), class = "data.frame", row.names = c(NA, -9L))

我的代码:

graph <- read.table("input.txt",header=T,sep=";")
output <- ggplot(graph,aes(x=x,y=y))+
geom_bar(stat="identity")+
geom_text(aes(label=y,y=(y+25)))+
scale_x_discrete()+
scale_y_continuous(limits=c(0,max(50 + graph$y)))+
theme(axis.text.x=element_text(angle=45,vjust=0))
print(output)

我无法发布输出图像,但除了 x 的刻度线外,绘图看起来还不错轴适合 x 的中间标签而不是标签的最后一个字母。

最佳答案

您应该将 hjust=1 添加到 axis.text.x= 并将 vjust=0 更改为 vjust=1。要更改条形的外观,您可以尝试使用 y 值的转换,例如,平方根,使用 scale_y_sqrt()。仅应调整 geom_text() 的位置。

output <- ggplot(graph,aes(x=x,y=y))+
geom_bar(stat="identity")+
geom_text(aes(label=y,y=(y+c(10,10,10,50,10,10,10,10,10))))+
scale_y_sqrt(limits=c(0,max(50 + graph$y)),breaks=c(10,100,250,500,1000))+
theme(axis.text.x=element_text(angle=45,vjust=1,hjust=1))
output

enter image description here

关于r - bar_plot ggplot : conflict between values on bar and x axis label,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14908492/

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