沿轴绘制两列,用第三列确定符号 - ggplot

时间:2017-06-20 16:57:39

标签: r plot ggplot2

我的数据框由三列组成,如下所示:

   ChildObject childObj = new ChildObject();
   childObj.setUserId(123456);
   getSession().save(childObj);

以下是整个数据框:

year   |  theme   |   count
-----------------------------
1998      WH           13
2001      WH           38
1999      WH            5
2011      NB           11
2010      NB           29
...

我想用x轴绘制'year',沿y轴绘制'theme',但有两个必要条件:

  1. 第三列'count'应确定符号。符号是 彩色,颜色随计数而变化,或符号是线段, 线的粗细应该随着计数而增加。
  2. 主题应该沿着y轴,与出现的主题一起排序 图表底部的早些年。
  3. 这将是散点图,其中符号由第三列中的值确定。

    我可以向你展示我完全不成功的剧本,但是一篇文章的代码太多了。

    任何建议都非常感谢。

2 个答案:

答案 0 :(得分:1)

df$theme = reorder(df$theme, df$year, FUN = min)

ggplot(df, aes(x = year, y = theme, color = count)) + geom_point()

您可能希望删除“全部”,以便它不会支配count中的变体,我们也可以在其中抛出size,具体取决于计数。

ggplot(subset(df, theme != "ALL"),
       aes(
         x = year,
         y = theme,
         color = count,
         size = count
       )) + geom_point(alpha = 0.8)

答案 1 :(得分:1)

以一种非常基本的方式,您的代码可能是这样的:

ggplot(df, aes(x=year, y=theme, color=count, size=count)) +
geom_point() +
theme_minimal() +
theme(axis.text.y = element_text(size = 13), axis.text.x = element_text(size = 13), axis.title.y =element_text(size=15), axis.ticks = element_line(size = 0.5), axis.title.x=element_text(size=15)) +
background_grid(major = "none", minor = "none") + 
scale_colour_gradient(low="grey", high="blue") +
panel_border()