Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/76.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 根据ggplot2中类别的比例调整(堆叠)条宽_R_Ggplot2_Width_Bar Chart - Fatal编程技术网

R 根据ggplot2中类别的比例调整(堆叠)条宽

R 根据ggplot2中类别的比例调整(堆叠)条宽,r,ggplot2,width,bar-chart,R,Ggplot2,Width,Bar Chart,我正在尝试根据类别的计数(或比例)更改我的(堆叠)条宽度,例如我使用了钻石数据集。我想根据每个类别(变量cut)的频率看到不同的宽度。我首先创建了一个变量cut\u prop,然后用以下代码绘制 library(tidyverse) cut_prop = diamonds %>% group_by(cut) %>% summarise(cut_prop = n()/nrow(diamonds)) diamonds = left_join(diamonds, cut_p

我正在尝试根据类别的计数(或比例)更改我的(堆叠)条宽度,例如我使用了钻石数据集。我想根据每个类别(变量
cut
)的频率看到不同的宽度。我首先创建了一个变量
cut\u prop
,然后用以下代码绘制

library(tidyverse)

cut_prop = diamonds %>% 
  group_by(cut) %>% 
  summarise(cut_prop = n()/nrow(diamonds))

diamonds = left_join(diamonds, cut_prop)

ggplot(data = diamonds, 
       aes(x = cut, fill = color)) + 
  geom_bar(aes(width=cut_prop), position = "fill") + 
  theme_minimal() +
  coord_flip()
这给了我以下的条形图:


R给出了一个警告,告诉我:
忽略未知的美学:宽度
,显然没有考虑酒吧宽度的类别比例,有谁能帮我吗?谢谢

我认为这是可行的。从你离开的地方开始

df <- diamonds %>% 
  count(cut, color, cut_prop) %>% 
  group_by(cut) %>% 
  mutate(freq = n / sum(n)) %>% 
  ungroup

ggplot(data = df,
       aes(x = cut, fill = color, y = freq, width = cut_prop)) +
  geom_bar(stat = "identity") +
  theme_minimal() +
  coord_flip()
df%
计数(切割、颜色、切割道具)%>%
分组依据(切割)%>%
变异(频率=n/和(n))%>%
解组
ggplot(数据=df,
aes(x=切割,填充=颜色,y=频率,宽度=切割)+
几何图形栏(stat=“identity”)+
主题_极小值()+
coord_flip()


基本上,我自己计算比例,而不是使用
position=“fill”
,然后使用
stat=identity
而不是
stat=count

你的意思是像马赛克图一样吗?我用过这个。我还看到了如何使用
geom\u rect
s执行此操作