【问题标题】:How do I remove horizontal lines from my bar plot如何从条形图中删除水平线
【发布时间】:2019-07-18 16:21:45
【问题描述】:

我正在尝试使用由三列组成的超过 400,000 个数据点来呈现条形图:成本、排名和年份,但是当我绘制 facetwrap 图表时,我会在每个条形中得到这些水平线。有人可以告诉我他们为什么在那里以及如何摆脱他们。我使用的代码是:

library(ggplot2)
costs<-read.table("C:/Projects/cost_rank_1.txt",header=TRUE)
df<-data.frame(costs)
ggplot(df,aes(x=rank, y=cost)) +
geom_bar(position=position_dodge(), 
stat="identity",colour="steelblue",fill="cornsilk3")+
facet_wrap(~year) +
  scale_x_continuous(breaks = seq(1,21,by = 2), 
                 labels = 
c("1","3","5","7","9","11","13","15","17","19","21"))  +
  scale_y_continuous(breaks=c(0,500,1000,1500,2000,2500))+
  labs(x="Rank",y="Average Cost per Rank (dollars)")+ggtitle("All Tiers") +
   theme(plot.title = element_text(color="black", size=14, face="bold"))

图表如下所示:

【问题讨论】:

    标签: r ggplot2 bar-chart facet-wrap


    【解决方案1】:

    修改aes() and geom_bar() components即可解决问题。具体来说,您必须将y=cost 更改为fill=cost,并将stat="identity" 更改为stat="count",从而生成以下代码:

    library(ggplot2)
    costs<-read.table("C:/Projects/cost_rank_1.txt",header=TRUE)
    df<-data.frame(costs)
    ggplot(df,aes(x=rank, fill=cost)) +
    geom_bar(position=position_dodge(), 
    stat="count",colour="steelblue",fill="cornsilk3")+
    facet_wrap(~year) +
      scale_x_continuous(breaks = seq(1,21,by = 2), 
                     labels = 
    c("1","3","5","7","9","11","13","15","17","19","21"))  +
      scale_y_continuous(breaks=c(0,500,1000,1500,2000,2500))+
      labs(x="Rank",y="Average Cost per Rank (dollars)")+ggtitle("All Tiers") +
       theme(plot.title = element_text(color="black", size=14, face="bold"))
    

    附:尝试提供完全可重现的案例,包括数据。

    【讨论】:

      猜你喜欢
      • 2019-06-13
      • 1970-01-01
      • 1970-01-01
      • 2015-07-01
      • 2023-01-22
      • 2017-07-16
      • 2021-12-15
      • 2012-07-09
      • 2019-10-14
      相关资源
      最近更新 更多