r - 如何为ggplot2中的离散变量创建颜色渐变?

标签 r ggplot2

我有大约100个排序类别的数据。我想将每个类别分别绘制为一条线,线的颜色范围从低值(例如蓝色)到高值(例如红色)。

这是一些示例数据和图表。

# Example data: normal CDFs

library(ggplot2)

category <- 1:100
X <- seq(0, 1, by = .1)
df <- data.frame(expand.grid(category, X))
names(df) <- c("category", "X")
df <- within(df, {
  Y <- pnorm(X, mean = category / 100)
  category <- factor(category)
  })

# Plot with ggplot
qplot(data = df, x = X, y = Y, color = category, geom = "line")


这会产生漂亮的彩虹(下)

但我宁愿使用从蓝色到红色的渐变色。有什么想法可以做到吗?

最佳答案

ggplot的默认梯度函数期望连续缩放。最简单的解决方法是像@Roland建议的那样转换为连续的。您也可以使用scale_color_manual指定所需的任何色阶。您可以获取ggplot将用于的颜色列表

cc <- scales::seq_gradient_pal("blue", "red", "Lab")(seq(0,1,length.out=100))


这将从蓝色到红色返回100种颜色。然后,您可以在

qplot(data = df, x = X, y = Y, color = category, geom = "line") +     
    scale_colour_manual(values=cc)

关于r - 如何为ggplot2中的离散变量创建颜色渐变?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30352412/

相关文章:

r - 如何在 r 中选择没有 NA 的最后一个测试

r - GLM 关于警方停止格尔曼/希尔书中的数据

R 箱线图和带状图并排显示在 1 个图中

r - 使用 ggplot 和 coord_polar 绘制螺旋条形图 (Condegram)

r - 是否可以对不带单个 `geom_boxplot()` 的小平面进行 ggplot 分组的部分箱线图?

r - 多系列条形图

r - ggplot2 和 gtable : drawing multiple lines across panels

r - 如何增加ggplot中*旋转* y轴上文本和标题之间的距离?

r - ggplot2 在列之间创建不均匀的间距

r - 如何在 R 中制作多个 png 文件的多面板图?