如何让我的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
答案 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
以及它想要的输入类型。请记住,您需要安装ggplot2库才能实现此目的。
如果数据看起来有点奇怪,Maurits Evers'转换数据的解决方案也很好。事实上,我认为使用ggplot2方法看起来非常好。
不幸的是,如果没有您的数据,我无法为您提供任何具体内容,但希望这可以帮助您:)
至少,ggplot2是一个非常强大,非常好看的绘图工具,学习这将使你的输出看起来更令人印象深刻,即使只是风格!