R ggplot2比例条形图:每个条形图只显示17个级别中的1个
我是R和SO的新手,非常感谢您在这方面提供的任何帮助 我有一个17级的R ggplot2比例条形图:每个条形图只显示17个级别中的1个,r,ggplot2,colors,geom-bar,R,Ggplot2,Colors,Geom Bar,我是R和SO的新手,非常感谢您在这方面提供的任何帮助 我有一个17级的系数类数据。我正在使用库(ggplot2)和geom_-bar(position=“fill”)创建比例条形图。代码和输出/绘图如下所示 基本上,它是好的,除了我想能够做的是创建17个以上的这些绘图,以突出其中一个级别(即其中一种颜色)保持不变,其余的将变灰,以区分一个级别与其他级别。因为共有17个级别,而且颜色非常相似,所以现在很难区分某些级别 我希望这是有意义的——乐意编辑并提供更多信息。我很感激在这个问题上有任何建议或帮
系数类数据。我正在使用库(ggplot2)
和geom_-bar(position=“fill”)
创建比例条形图。代码和输出/绘图如下所示
基本上,它是好的,除了我想能够做的是创建17个以上的这些绘图,以突出其中一个级别(即其中一种颜色)保持不变,其余的将变灰,以区分一个级别与其他级别。因为共有17个级别,而且颜色非常相似,所以现在很难区分某些级别
我希望这是有意义的——乐意编辑并提供更多信息。我很感激在这个问题上有任何建议或帮助。非常感谢你
代码
情节
编辑/复制示例
我还试图建立一个可复制的例子,似乎这里可能有问题:
# data
d <- as.POSIXct(
c("2020-01-01", "2020-01-01","2020-01-01",
"2020-01-02", "2020-01-02", "2020-01-02",
"2020-01-03", "2020-01-03", "2020-01-03"))
t <- as.factor(
c("ATopic", "BTopic", "CTopic",
"CTopic", "BTopic", "BTopic",
"CTopic", "ATopic", "BTopic"))
df <- data.frame(d, t)
# the plot
df %>%
ggplot(aes(x = d, fill = factor(t))) +
geom_bar(position = "fill", stat = "count")
##E rror line: position_stack requires non-overlapping x intervals
以下是输出:
我认为使用gghighlight
(结合facet\u wrap
)会满足您的需要
这里是一个使用iris
数据集绘制每个物种萼片宽度与萼片长度函数的示例。在这里,我使用了facet\u wrap
来分离每个物种,并gghighlight
,以便一次只显示一个物种的颜色
库(ggplot2)
图书馆(GG)
ggplot(鸢尾,aes(x=萼片长度,y=萼片宽度,颜色=种))+
几何点()+
面_包装(~种)+
gghighlight()
它回答了你的问题吗
如果没有,请考虑提供一个数据集的可重复的例子()
绝对。这正是我想要的。非常感谢@dc37!接受答案和+1。我在p.forum
上尝试了这一点,共有17个级别。当我这样做时,我就失去了其他层次的上下文。这和geom_酒吧不同吗?同时,我将尝试提供一个可复制的示例。示例添加到post中。我是在你的帮助下得到的!再次感谢你的建议,我不知道@DC37很高兴我的回答能帮助您找到问题的解决方案;)
# data
d <- as.POSIXct(
c("2020-01-01", "2020-01-01","2020-01-01",
"2020-01-02", "2020-01-02", "2020-01-02",
"2020-01-03", "2020-01-03", "2020-01-03"))
t <- as.factor(
c("ATopic", "BTopic", "CTopic",
"CTopic", "BTopic", "BTopic",
"CTopic", "ATopic", "BTopic"))
df <- data.frame(d, t)
# the plot
df %>%
ggplot(aes(x = d, fill = factor(t))) +
geom_bar(position = "fill", stat = "count")
##E rror line: position_stack requires non-overlapping x intervals
library(gghighlight)
df %>%
ggplot(aes(x = factor(d), fill = factor(t))) +
geom_bar(position = "stack", stat = "count") +
facet_wrap(~t) +
gghighlight()