【发布时间】:2020-01-24 00:22:40
【问题描述】:
我将一个 csv 文件上传到 R studio 并尝试绘制两列。第一个显示赞数,第二个显示分享数。我想显示人们实际喜欢帖子时分享数量之间的关系。
问题是我的点赞数从1到100万,分享数从5到37000。
我的数据集样本(两列都属于 factor 类)
topMedia$likes_count
[1] 61 120 271 140 59 498 241 117 124 124 225 117 186 101
[15] 118 134 152 136 153 124 100 77 98 77 88 48 58 66
topMedia$shares_count
[1] 12 171 NULL 23 34 108 430 NULL NULL NULL 283 NULL NULL 57
[15] NULL NULL NULL 68 105 NULL NULL 7 10 45 103 22 75 16
当我使用此代码绘制散点图时。看起来很乱。
plot(as.numeric(topMedia$shares_count),as.numeric(topMedia$likes_count))
我尝试使用其他库
library(hexbin)
cols = colorRampPalette(c("#fee6ce", "#fd8d3c", "#e6550d", "#a63603"))
plot(hexbin(as.numeric(topMedia$shares_count), as.numeric(topMedia$likes_count), xbins = 40), colorcut = seq(0,1,length=20),
colramp = function(n) cols(20), legend = FALSE,xlab = 'share count', ylab = 'like count')
但即使使用颜色,我也会得到类似的结果
什么是显示这些值之间关系的更好方法? 谢谢。
【问题讨论】:
-
heatmapin base R 或geom_bin2dinggplot2可能在这里有用。更多策略请参见此处:displayr.com/what-is-overplotting 或 data-to-viz.com/caveat/overplotting.html -
问题似乎是大量的数据点。尝试使用
smoothScatter或hexbin。这里有几个例子:cddt.nz/visualising-big-data-in-R.html -
我怀疑你这里有因子数据,你用 as.numeric 的转换是转换因子的值而不是水平。这可能解释了您所看到的近乎均匀的分布,而我预计这两个度量之间存在很强的线性相关性。尝试将
as.numeric(topMedia$shares_count)替换为as.numeric(as.character(topMedia$shares_count))并与其他度量值相同。 -
@JonSpring 添加 as.character 后看起来更好!但它改变了轴上的数字。知道为什么吗?谢谢你的帮助。
-
@cddt 我已经用我的 hexbin 尝试更新了我的帖子。它没有改变情节。谢谢
标签: r plot scatter-plot