【问题标题】:How to manually set colors in a bar chart如何在条形图中手动设置颜色
【发布时间】:2016-02-08 16:34:30
【问题描述】:

目前以下条形图的默认颜色为 Apct = Red 、BPct = Green、CPct = Blue。

如何更改颜色以使 Apct = Purple、BPct = Black、CPct = Red?

这是工作代码:

library(reshape)
Time<-data.frame(Time = c(as.POSIXct("2015-02-05 14:35:00"), as.POSIXct("2015-02-05 14:40:00")))
APct<-c(.1,.2,.7)
BPct<-c(.2,.4,.4)
Time
data<-cbind(Time, rbind(APct, BPct))
data
colnames(data)<-c("Time", "APct","BPct","CPct")
rownames(data)<- NULL
data
data<-melt(data, measure.vars =c("APct","BPct","CPct") )
  ggplot(data=data, aes( x = Time,  y=value, fill=variable))   +  
  geom_bar(stat="identity") +
  ggtitle("% ") +  xlab("Time") +
  ylab("Percentage") +theme(axis.text.x = element_text(angle = 90, hjust = 1))

还有——

我怎么知道 Apct 会搭配紫色?它是按字母顺序排列的还是我可以手动设置一些类似于 Apct = Purple 的东西?

还有没有办法让 Cpct 始终位于底部栏,BPCt 始终位于中间栏,APct 始终位于顶部栏?

谢谢。

【问题讨论】:

    标签: r


    【解决方案1】:

    您可以使用scale_fill_manual 来控制颜色。

    所以你对 ggplot 的调用变成了

    ggplot(data=data, aes( x = Time,  y=value, fill=variable))   +  
    geom_bar(stat="identity") +
    ggtitle("% ") +  xlab("Time") +
    ylab("Percentage") +theme(axis.text.x = element_text(angle = 90, hjust = 1)) +
    scale_fill_manual(values=c("purple","black","red"))
    

    【讨论】:

    • 感谢 xraynaud,但我怎么知道 Apct 会搭配紫色?它是按字母顺序排列的还是我可以手动设置一些类似于 Apct = Purple 的东西?
    • 是否还有一种方法可以使 Cpct 始终位于底部栏,BPCt 位于中间栏,APct 位于顶部栏?
    • 你的变量遵循你在measure.vars =c("APct","BPct","CPct")中指定的顺序(至少在我的电脑上;我对melt不是很熟悉。所以你给你想要的颜色的顺序与你的测量顺序相同.vars 参数并指定measure.vars =c("CPct","BPct","APct") 以获取您想要的顺序。
    • 谢谢 xraynaud。还有一个问题,您知道如何更改图例顺序,使 CPct 在底部,BPct 在中间,APCt 在图例顶部。只是试图将传说与酒吧相匹配。比你。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-24
    • 2018-01-07
    • 2023-03-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多