【问题标题】:Unable to change text labels in legend box and showing up different color in legend using ggplot无法更改图例框中的文本标签并使用 ggplot 在图例中显示不同的颜色
【发布时间】:2019-06-21 05:26:46
【问题描述】:

我的数据框是

 steps.1 interval.1 steps.2 interval.2 steps.3 interval.3
1         0          0       0          0       0          0
2         0          5       0          5       0          5
3         0         10       0         10       0         10
4         0         15       0         15       0         15
5         0         20       0         20       0         20
6         0         25       0         25       0         25
7         0         30       0         30       0         30
8         0         35       0         35       0         35
9         0         40       0         40       0         40
10        0         45       0         45       0         45.................
.
.
.
.

我正在尝试使用ggplot 在 step.1 与 interval.1 之间绘制图表

我的代码

g<-ggplot(temp,aes(x=interval.1,y=steps.1))+scale_x_continuous(name="intervals",breaks = seq(1000,1500,50),limits = c(1000,1500))

g <- g + geom_jitter(aes(x=interval.1,y=steps.1,color="dark red")) + geom_jitter(aes(x=interval.2,y=steps.2,color="green"))+ geom_jitter(aes(x=interval.3,y=steps.3,color="orange"))

+ geom_jitter(aes(x=interval.4,y=steps.4,color="violet"))+ geom_jitter(aes(x=interval.5,y=steps.5),color="blue") + geom_jitter(aes(x=interval.6,y=steps.6,color="pink"))

但是图例框以随机颜色出现,即,如果我将颜色设为绿色,则它正在绘制不同的颜色,并且我无法更改图例框中每个文本标签的名称?

【问题讨论】:

  • 你能提供可重现的数据吗?例如,dput(df)dput(head(df)) 的输出,其中 df 是您的数据框。
  • 您需要将color 属性放在aes 之外。另见here
  • @Sven 将颜色属性放在外面不会显示图例框

标签: r dataframe ggplot2 legend


【解决方案1】:

由于所有的零,我无法重现您的情节。另外,我建议将此数据转换为长格式。请参阅示例代码。我还建议使用马赛克图,因为区间似乎是一个分类变量。

#import the data 
data <- read.csv("C:/test.csv")
colnames(data)[1] <- "steps.1"
data

#convert to long form
data.long <- reshape(data, varying=1:6, direction="long", timevar="steps", sep=".")
data.long$group <- as.factor(rep(c(1:3), each=10))
data.long

#plot
library(ggplot2)
ggplot(data.long, aes(x=interval, y=steps, color=group)) +
  geom_point() 

【讨论】:

    【解决方案2】:

    请尝试此代码,而不是提供颜色,保持变量名称为颜色(例如:color = interval.1)

    数据

    steps.1 interval.1  steps.2 interval.2  steps.3 interval.3
    1   1000    0   1000    0   1000
    2   1100    5   1100    5   1100
    3   1200    10  1200    10  1200
    4   1300    15  1300    15  1300
    5   1400    20  1400    20  1400
    6   1401    25  1401    25  1401
    7   1402    30  1402    30  1402
    8   1403    35  1403    35  1403
    9   1404    40  1404    40  1404
    10  1405    45  1405    45  1405
    

    代码

    g<-ggplot(temp,aes(x=interval.1,y=steps.1))+scale_x_continuous(name="intervals",breaks = seq(1000,1500,50),limits = c(1000,1500))
    
    g <- g + geom_jitter(aes(x=interval.1,y=steps.1,color="interval.1")) + geom_jitter(aes(x=interval.2,y=steps.2,color="interval.2"))+ geom_jitter(aes(x=interval.3,y=steps.3,color="interval.3"))
    
    #output
    

    【讨论】:

    • 对不起,它显示了这个错误``` grDevices::col2rgb(color, TRUE) 中的错误:无效的颜色名称'interval.5' ``
    • @AnanyaVidyanathan 我已经粘贴了我处理输出的示例数据
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-06-14
    • 2017-02-05
    • 1970-01-01
    • 1970-01-01
    • 2021-10-29
    • 2021-03-03
    • 1970-01-01
    相关资源
    最近更新 更多