在 ggplot2 中使用 scale_colour_manual 着色变量
Colouring variables using scale_colour_manual in ggplot2
所以我使用下面的代码来绘制我的数据:
ggplot(df, aes(Pi, value, color = variable)) +
geom_point(shape=4) + geom_line() +
scale_colour_manual(values = c('pink', 'pink', 'pink', 'pink', 'pink', 'pink', 'pink', 'pink', 'pink', 'pink', 'orange'))
我还不能 post 我的情节的图像,所以我的数据(长格式)看起来像这样:
Pi variable value
0.4038 X1 2.778755e-01
.
.
.
0.7782 X10 3.455836e-01
.
0.0023 Sqi 5.654000e+00
在我的代码中,我手动将变量 'X1' 的颜色设置为 'X10'(粉红色)和 'Sqi'(橙色),因为它们按顺序排列df
.
最后我想将 'X1' 添加到 'X100' 变量(每个变量有 50 个值),除了 'Sqi' 变量外,所有变量都具有相同的颜色。
关于如何缩短我的代码而不是提到 'pink' 一百次的任何线索?
此外,如果我可以指定我想要 geom_line()
的变量,那将会很有帮助。
谢谢!
根据@jazzurro 的评论,要调整线条颜色和大小(或线型),您可以这样做。你必须确保你的颜色和大小变量是因素,否则你会得到一个错误:Error: Continuous value supplied to discrete scale
x <- c(1:3, 4:6)
y <- c(3:5, 8:10)
line.col <- c("pink", "orange", "blue")
width <- c(2, 3, 5)
df <- data.frame(x=x, y=y, line.col=line.col, width = width)
ggplot(df, aes(x=x, y=y, color = line.col, size = factor(width))) +
geom_line() +
scale_color_manual(values = line.col) +
scale_size_manual(values = df$width)]
所以我使用下面的代码来绘制我的数据:
ggplot(df, aes(Pi, value, color = variable)) +
geom_point(shape=4) + geom_line() +
scale_colour_manual(values = c('pink', 'pink', 'pink', 'pink', 'pink', 'pink', 'pink', 'pink', 'pink', 'pink', 'orange'))
我还不能 post 我的情节的图像,所以我的数据(长格式)看起来像这样:
Pi variable value
0.4038 X1 2.778755e-01
.
.
.
0.7782 X10 3.455836e-01
.
0.0023 Sqi 5.654000e+00
在我的代码中,我手动将变量 'X1' 的颜色设置为 'X10'(粉红色)和 'Sqi'(橙色),因为它们按顺序排列df
.
最后我想将 'X1' 添加到 'X100' 变量(每个变量有 50 个值),除了 'Sqi' 变量外,所有变量都具有相同的颜色。 关于如何缩短我的代码而不是提到 'pink' 一百次的任何线索?
此外,如果我可以指定我想要 geom_line()
的变量,那将会很有帮助。
谢谢!
根据@jazzurro 的评论,要调整线条颜色和大小(或线型),您可以这样做。你必须确保你的颜色和大小变量是因素,否则你会得到一个错误:Error: Continuous value supplied to discrete scale
x <- c(1:3, 4:6)
y <- c(3:5, 8:10)
line.col <- c("pink", "orange", "blue")
width <- c(2, 3, 5)
df <- data.frame(x=x, y=y, line.col=line.col, width = width)
ggplot(df, aes(x=x, y=y, color = line.col, size = factor(width))) +
geom_line() +
scale_color_manual(values = line.col) +
scale_size_manual(values = df$width)]