Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 带有两个独立条带多个值的df的条形图_R_Dataframe_Ggplot2 - Fatal编程技术网

R 带有两个独立条带多个值的df的条形图

R 带有两个独立条带多个值的df的条形图,r,dataframe,ggplot2,R,Dataframe,Ggplot2,以下问题: 我有这个数据集 df Ch V1 V2 A a1 a2 B b1 b2 C c1 c2 .... 而V1和V2是数值。我想为每个V1和V2值创建一个带有条形图的条形图。 我试过的代码 ggplot(data = df %>% gather(Variable, No., -Ch), aes(x = reorder(ID,-

以下问题: 我有这个数据集

df
Ch         V1          V2
A          a1          a2
B          b1          b2
C          c1          c2
....
而V1和V2是数值。我想为每个V1和V2值创建一个带有条形图的条形图。 我试过的代码

ggplot(data = df %>% gather(Variable, No., -Ch), 
       aes(x = reorder(ID,-No.), y = No., fill = Variable)) + 
  geom_bar(stat = 'identity', position= position_dodge())+
  geom_col()+
  xlab("Section of industry")+
  ylab("No. of occurences")+
  theme_classic()+
  theme(axis.text.x = element_text(angle = 45, size=1),
        plot.title = element_text(hjust = 0.5),
        legend.position = "top")+
  ggtitle("XXX")
即使使用position=position\u dodge(),它也只会将两个条合并为一个,如下所示: 你知道我该如何分离这个位置,或者为什么positon_dodge()不起作用吗?我想是因为我以前用过聚集函数吧

另一个问题是,Ch的值太大,因此如果我想以可读的方式显示它们,图形“消失”。是否有方法显示这些值(可能将值写在两行中),以便显示


多谢各位

您的问题是在
ggplot
调用中既有
geom\u bar
又有
geom\u col
,因此geom\u bar中的
position\u dodge()
参数被
geom\u col
覆盖,从而生成一个堆叠的条。因此,删除
geom_col
应该是可行的。或者,您可以删除
geom\u栏
并将
position=position\u dodge()
传递到
geom\u col

要缩写x标签,您可以使用
scale\u x\u discrete(缩写)
,如本文所述:

库(dplyr)
图书馆(GG2)
图书馆(tidyr)
df%>%pivot\u更长(,-Ch,names\u to=“Var”,values\u to=“Val”)%>%
ggplot(aes(x=Ch,y=Val,fill=Var))+
几何坐标(位置=位置减淡()+
xlab(“工业部门”)+
ylab(“发生次数”)+
主题(经典)+
主题(axis.text.x=元素\文本(角度=45,hjust=1),
plot.title=元素\文本(hjust=0.5),
legend.position=“top”)+
标题(“XXX”)+
比例x离散(标签=缩写)

示例数据

结构(列表(Ch=structure(1:5,.Label=c)(“aaaaaaaaaaaa”), “bbbbbbbbbb”、“cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc ),class=“factor”),V1=1:5,V2=5:9),class=“data.frame”,row.names=c(NA, -(5升)