通过更好地表示数据来修复R中的丑陋箱图

时间:2018-02-26 01:55:23

标签: r boxplot

如何让我的boxplot更好?大多数数据在图的一侧聚集在一起。同样在我的Rmd显示屏中,它被切断了。我该怎么做才能使这个更漂亮的外观和更好的数据表示?

代码:

boxplot(df2$Runtime[df2$drama == 1], 
df2$Runtime[df2$comedy == 1], 
df2$Runtime[df2$short == 1], 
df2$Runtime[df2$romance == 1], 
df2$Runtime[df2$action == 1], 
df2$Runtime[df2$crime == 1], 
df2$Runtime[df2$thriller == 1], 
df2$Runtime[df2$documentary == 1], 
df2$Runtime[df2$adventure == 1], 
df2$Runtime[df2$animation == 1], 
names = names(top10),
horizontal = TRUE, yaxt="n")

axis(2, labels = names(top10), at=1:length(top10), las=2)

每个类型都在数据框中,其值为0或1.运行时具有表示分钟的整数值

示例数据:

> head(df2$Runtime); head(df2$drama); head(df2$comedy)
[1]  70  21 106  75  14  82
[1] 0 0 0 1 0 0
[1] 0 0 0 0 0 0

结果 enter image description here

1 个答案:

答案 0 :(得分:0)

如果没有可以使用的数据,很难说太多。当你的问题是某些领域的数据非常密集时,这无疑是很难的。但是,您可以提供少量几个类别的数据。人们通常使用dput输出结果并将其复制并粘贴到此处。如果将其复制并粘贴为表格,则可以轻松阅读R:)

至于你的问题,数据可视化总是很棘手!您获得了大量的点,因为它们是异常值,即在给定样本大小的情况下超出一定数量的SD。因此,部分数据非常密集。那么也许不是一个箱形图,你可以尝试类似小提琴的情节吗?

在R中有一个名为ggplot2的惊人包裹。你花在R上绘制事物的时间越多,你就越接近使用它直到你跳跃。

我猜测你可以用你的数据做下面的事情。如果这不起作用(不是100%确定您的数据结构是什么),请查看this page,这可能会让您更好地了解如何使用它。

另一个警告,我正在假设有一个Genre列,其中说明了这种类型。如果这还不存在,请查看this answer,其中显示了如何将多个二进制列转换为带有因子标签的一列。

如果您处于某些电影可以有多种类型的场景中,那么您希望复制以下解决方案的数据。即如果你有喜剧和短片的电影,那么它应该出现两次(即连续两次),每个条目的流派不同。

尽管如此,还是简单的解决方案!

ggplot(data = df2, aes(x = Genre, y = Runtime)) + geom_violin()

一旦你设置了它,那就是它。诀窍是习惯了ggplot2以及它想要的输入类型。请记住,您需要安装ggp​​lot2库才能实现此目的。

如果数据看起来有点奇怪,Maurits Evers'转换数据的解决方案也很好。事实上,我认为使用ggplot2方法看起来非常好。

不幸的是,如果没有您的数据,我无法为您提供任何具体内容,但希望这可以帮助您:)

至少,ggplot2是一个非常强大,非常好看的绘图工具,学习这将使你的输出看起来更令人印象深刻,即使只是风格!