1

我已经计算了三个网络的几个类别的值。我想在 R 中创建一个条形图来显示这些网络参数之间的差异。到目前为止,我用barplot R 函数绘制了这个,x 轴上的类别,y 轴上的值和每个类别三个条形图(每个网络一个)。

但是现在我有一个比其他所有值都高得多的值。因此看不到其余部分的差异,因为它们仅由一条细线表示,因为一个大条几乎填满了整个情节。

我现在的想法是在 y 轴上以不规则的比例绘制值,例如,一半代表 0 到 300 之间的值,另一半代表 300 到 3000 之间的值。有没有办法做到这一点?或者一个很好的替代方法来处理这个问题?我也想过绘制对数,但不幸的是我也有负值。

4

1 回答 1

0

我建议不规则的比例不是一个好的计划——我认为它会让图表的观众感到困惑。相反,您可以使用该layout()函数在水平布局中绘制三个单独的条形图。因此,每个类别都可以有自己的情节,有自己的规模。

但是,如果您仍然有一个 3000 的柱,而其他所有的柱都在 300,那将无济于事。在这种情况下,您可以使用 手动设置 y 轴范围ylim=c(min,max)。为了防止条形图超出屏幕,您可以使用简单的逻辑将任何 > 300 的值定义为 300 或类似的值。然后,在此处放置一个文本点,说明实际值(使用text,也许与arrow)。

有了这些想法,我建议一个值是其他值的 10 倍的图表可能真的不值得呈现,或者如果是,那么主要的收获不是“值 2 和 3 如何相互比较”,这将是“天哪,看看 1 比 2 和 3 大多少”。因此,如果一个条形图很大,两个条形图很小,这可能没什么大不了的,只要你没有在一个图上完成所有 9 个(这会搞砸其他相关的比较)。因此,如果您使用 拆分它们layout(),那么它就没什么大不了的了。

于 2012-09-12T15:53:06.453 回答