【问题标题】:Change color and add shape to lines on ggplot2 geom_freqpoly更改颜色并将形状添加到 ggplot2 geom_freqpoly 上的线条
【发布时间】:2016-10-24 08:34:27
【问题描述】:

我正在尝试在使用 geom_freqpoly 绘制的线条上添加形状,以便在绘图以黑白方式打印在纸上时为它们提供更多可见性。

data <-  data.frame(time=runif(1000,0,20000),
                   class=c("a","b","c","d"))

ggplot(data, aes(time, colour = class)) + geom_freqpoly(binwidth = 1000) + geom_point(aes(shape=class))

但这会产生这个错误: '错误:geom_point 需要以下缺失的美学:y'

我该如何解决这个错误?

另一件事是我想使用单一颜色(例如蓝色)来绘制线条 但是对于scale_colour_brewer(),我无法更改色标,我想更改它,因为最亮的颜色几乎是白色的,您几乎看不到它。

如何为颜色添加自定义最小值和最大值?

【问题讨论】:

  • 我认为积分不是geom_freqpoly 的选项。如果你真的需要点,你应该自己编程频率,然后通过点绘制它们。第二个问题看scale_colour_gradient
  • @RomanLuštrik,是的,我知道,但我想在线条上添加形状,如何检索自动计算的 y 变量?
  • 如果你只是需要不同的形状,使用linetype = class
  • @DavidePassaretti using 'scale_colour_gradient' 给我这个错误:离散值提供给连续比例
  • 对。看scale_colour_manual()

标签: r plot ggplot2 data-visualization


【解决方案1】:

这个怎么样?你得到的错误是由geom_point 产生的,它需要xy,所以我删除了它。

ggplot(data, aes(x = time, color = class)) + 
  geom_freqpoly(binwidth = 1000) +
  scale_color_brewer(palette = "Blues") +
  theme_dark()

如果您不想要深色背景,请从RColorBrewer 传递手动值。以下示例使用每隔一种颜色来增加对比度。

p1 <- ggplot(data, aes(x = time, color = class)) + 
  geom_freqpoly(binwidth = 1000) +
  scale_color_manual(values = RColorBrewer::brewer.pal(9, name = "Blues")[c(3, 5, 7, 9)])

编辑

您可以使用 layer_data 函数从 ggplot 对象中提取汇总数据。

xy <- layer_data(p1)

ggplot(xy, aes(x = x, y = count, color = colour)) +
  theme_bw() +
  geom_line() +
  geom_point() +
  scale_color_manual(values = RColorBrewer::brewer.pal(9, name = "Blues")[c(3, 5, 7, 9)])

【讨论】:

  • 感谢颜色,但问题是 geom_point,我想要这样的东西 [eg] (i.stack.imgur.com/mLckD.png)
  • @mario 查看编辑。它需要一些抛光,但应该可以完成工作。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-04-07
  • 2019-01-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多