编辑:
我的问题可以归结为这样:
“如何让ggplot使用十六进制颜色?”
MrFick的答案非常好。
我的原始问题有一个可怕的拼写错误(请阅读评论)。我建议不要删除这个有缺陷的问题,只需不要阅读下面的任何内容,然后阅读已接受的解决方案。谢谢。
:编辑结束
我绘制了几个geom_segment
层,以制作看起来像垂直条的图形。
p <- p + geom_segment(data=DF_for_plotting, aes(x=value[1], xend=value[2]-0.001, y=1, yend=1, colour="green"), size=10)
p <- p + geom_segment(data=DF_for_plotting, aes(x=value[2], xend=value[3]-0.001, y=1, yend=1, colour="blue"), size=10)
p <- p + geom_segment(data=DF_for_plotting, aes(x=value[3], xend=value[4]-0.001, y=1, yend=1, colour="red"), size=10)
p
这给了我:
red
替换为"#CC6666"
,将green
替换为"#9999CC"
,并将blue
替换为"#66CC99"
时,出现问题。q <- ggplot()
q <- q + geom_segment(data=DF_for_plotting, aes(x=value[1], xend=value[2]-0.001, y=1, yend=1, colour="#66CC99"), size=10)
q <- q + geom_segment(data=DF_for_plotting, aes(x=value[2], xend=value[3]-0.001, y=1, yend=1, colour="#9999CC"), size=10)
q <- q + geom_segment(data=DF_for_plotting, aes(x=value[3], xend=value[4]-0.001, y=1, yend=1, colour="#CC6666"), size=10)
我得到:
每次绘图后我是否需要重置颜色?为什么需要这样做?
(顺便说一下,我也在使用Shiny,动态地制作了一组6个图。如果这与环境中颜色的定义有关,我可能会遇到一些额外的问题。)
任何帮助都将不胜感激。
数据位于此处,代码在此处:
library(ggplot2)
library(gridExtra)
#DF_for_plotting lives here: https://www.dropbox.com/s/6hkc3mth9oimlk5/DF_for_plotting.csv?dl=0
p <- ggplot()
p <- p + geom_segment(data=DF_for_plotting, aes(x=value[1], xend=value[2]-0.001, y=1, yend=1, colour="green"), size=10)
p <- p + geom_segment(data=DF_for_plotting, aes(x=value[2], xend=value[3]-0.001, y=1, yend=1, colour="blue"), size=10)
p <- p + geom_segment(data=DF_for_plotting, aes(x=value[3], xend=value[4]-0.001, y=1, yend=1, colour="red"), size=10)
q <- ggplot()
q <- p + geom_segment(data=DF_for_plotting, aes(x=value[1], xend=value[2]-0.001, y=1, yend=1, colour="#66CC99"), size=10)
q <- p + geom_segment(data=DF_for_plotting, aes(x=value[2], xend=value[3]-0.001, y=1, yend=1, colour="#9999CC"), size=10)
q <- p + geom_segment(data=DF_for_plotting, aes(x=value[3], xend=value[4]-0.001, y=1, yend=1, colour="#CC6666"), size=10)
grid.arrange(p,q, ncol=2)
q
代码中有一个错别字。你把它加到了p
上,这就是为什么你仍然看到颜色名称的原因。 - MrFlick