首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何仅对ggplot中的一个组应用手动着色

如何仅对ggplot中的一个组应用手动着色
EN

Stack Overflow用户
提问于 2016-06-24 22:19:46
回答 2查看 56关注 0票数 0

假设有一个2x2矩阵,其中输入矩阵中有两行(每行表示一个technique),每行有两列。现在我想画一张ggplot。在ggplot中设置线条颜色的典型方法中,我们将color设置为沿一个维度(即列)变化,将linetype设置为沿另一个维度(即行)变化:

代码语言:javascript
复制
geom_line(aes(color=m, linetype=techniques))

是否有一种方法可以对属于其中一组的所有线条强制使用一种颜色,即黑色?例如,有没有一种方法可以做一些类似的事情:

代码语言:javascript
复制
### do this first
geom_line(aes(color=m, linetype=techniques))

###and then change the colors for one of the groups, i.e. for techniques1
scale_color_manual(values=c("black", "black"))

上面的解决方案对两组(techniques1和techniques2)都进行了更改。

EN

回答 2

Stack Overflow用户

发布于 2016-06-24 22:56:51

方法1

代码语言:javascript
复制
 df <- mtcars
ggplot(data=df,aes(x=mpg,y=hp)) +geom_line(colour = "black") +geom_line(aes(x=mpg,y=cyl),colour = "black")

或者方法2

代码语言:javascript
复制
df <- mtcars
df1 <- df[,-2,-3]
df2 <- df[,-4,-5]
ggplot(data=df1,aes(x=mpg,y=hp)) +geom_line(colour = "black")+geom_line(data=df2,aes(x=mpg, y = cyl), colour="black")

我知道y轴不是同一单位的..但这只是为了展示你是如何做到的。

票数 0
EN

Stack Overflow用户

发布于 2016-06-24 23:06:37

你可能需要创建一个新的变量来控制颜色,例如

代码语言:javascript
复制
df$newColor <- paste(df$techniques, df$m, sep = "_")
df$newColor[df$techniques == "1"] <- "technique 1"

或者,如果您有更多需要着色但不单独命名的技术:

代码语言:javascript
复制
df$newColor <- df$techniques
df$newColor[df$techniques == "1"] <- "technique 1"

然后使用该newColor列作为颜色变量

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38015651

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档