gpt4 book ai didi

r - 通过忽略零长度变量最小化 ggplot 图的绘图大小

转载 作者:行者123 更新时间:2023-12-01 10:06:47 26 4
gpt4 key购买 nike

我有一个数据框,我想以与 ggplot2 bar-plot page 上的示例之一类似的方式绘制它.这个例子是这样的:

ggplot(diamonds, aes(cut, fill=cut)) + geom_bar() + facet_grid(. ~ clarity)

我的问题是假设在钻石数据集中没有理想切割的 VV21 净度钻石:

newdiamonds <- diamonds[diamonds$clarity != "VVS2" & diamonds$cut != 'Ideal', ]
ggplot(newdiamonds, aes(cut, fill=cut)) + geom_bar() + facet_grid(. ~ clarity)

如果您绘制此图,即使没有要绘制的条,“理想”位置仍然存在。是否可以抑制这个未使用空间的绘制?在这种情况下,它没有用,但在我的例子中,我有两列变量——“数据”和“分组”。我想跨越“分组”并按“数据”显示。对于“数据”成员没有值的“分组”组,我不希望 ggplot 绘制它。


编辑

根据这两个答案,我正在寻找一个如下所示的图表:

ggplot(newdiamonds, aes(cut, fill=cut)) + geom_bar() + coord_flip() + facet_grid(clarity~.)

但是每个组中可能只有一个或多个“剪切”属性。 enter image description here

最佳答案

ggplot 绘制因子的所有水平,无论水平是否出现在数据集中。对数据集进行子集化后,您需要删除未使用的因子级别“理想”:

library(ggplot2)
newdiamonds <- diamonds[diamonds$clarity != "VVS2" & diamonds$cut != 'Ideal', ]
newdiamonds$cut <- newdiamonds$cut[, drop=TRUE]
ggplot(newdiamonds, aes(cut, fill=cut)) + geom_bar() + facet_grid(. ~ clarity) +
opts(axis.text.x=theme_text(angle=90, hjust=1))

ggplot2 drop factor levels

关于r - 通过忽略零长度变量最小化 ggplot 图的绘图大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9491190/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com