使用ggplo2从csv文件中绘制R中的条形图/集群柱形图

时间:2020-05-05 20:23:48

标签: r csv ggplot2

我正计划用趋势线将每个条形连接在顶部,以绘制时间和收入的条形图/群集柱形图。从1981年到1988年。

我已使用此代码读取了csv:read.csv(file_location/Revenue.csv",header = T, sep=",", dec = ".")

用于绘图:pl <- ggplot(data,aes(x=ï..Year))

然后是:pl + geom_bar(color='red',fill='blue')

很遗憾,i end up with something like this。而i'd prefer something like this。 在这种情况下,我只使用了 ggplot2 库,是否应该另外使用 tidyr,diplyr ?我在连续变量和离散变量之间犯错了吗?由于我仍然在ggplot和数据可视化的基础上,有关美化以美化它的任何建议或有关此问题的解决方案,将不胜感激。

如果您要检查它,我还加了罚款:Revenue.csv

1 个答案:

答案 0 :(得分:1)

检查the documentation here形成一些信息,但是您应该进行的最大更改是使用geom_col代替geom_bar。您当前的调用指定了x=美观度(应该是x轴),但是没有指定y=美观度(应该是y轴)。 geom_bar表示默认情况下每个x值的案例/观察次数,而geom_col用于显示每个x值的长度为y的条形...但是您需要美观。

话虽如此,请尝试以下操作:

pl <- ggplot(data,aes(x=ï..Year, y=your.y.column.name)) +
    geom_col(color='red',fill='blue')

至于美学,我可能会稍微改变配色方案和主题,但这是个人喜好。我的建议是至少更改geom_bar/col的配色方案。 color=指定条形的轮廓,fill=是条形的颜色。您的代码将为您提供带有红色轮廓的亮蓝色条...不太好。我还可以通过将width=参数从默认值1调整为较小值,来将条形的宽度更改为更窄一些。这是一个带有虚拟数据集的示例。抱歉,大多数人(包括我在内)都不想通过链接下载其他人的数据。

df <- data.frame(x=1:10, y=1:10)
ggplot(df, aes(x=x, y=y)) +
    geom_col(fill='steelblue', color='black', width=0.5) +
    theme_bw()

enter image description here