R 基于组的绘图

R 基于组的绘图,r,plot,scatter-plot,R,Plot,Scatter Plot,我有总共500行的数据集:250个pop,250个重金属。如何在R中生成此绘图 我的实际数据集并不像我给出的示例那样被分离。我应该把它分开吗 到目前为止我做了什么 ggplot(data = playlist, aes(x = genre, y = danceability)) + geom_jitter(aes(col = genre)) 请参阅如何创建一个简单的自包含示例 考虑到您给我们的屏幕截图,我不知道如何生成所需的绘图,因为您只有一个数值变量-可跳舞性。在您的示例中,散点图在x

我有总共500行的数据集:250个pop,250个重金属。如何在R中生成此绘图

我的实际数据集并不像我给出的示例那样被分离。我应该把它分开吗

到目前为止我做了什么

ggplot(data = playlist, aes(x = genre, y = danceability)) +
  geom_jitter(aes(col = genre))

请参阅如何创建一个简单的自包含示例

考虑到您给我们的屏幕截图,我不知道如何生成所需的绘图,因为您只有一个数值变量-
可跳舞性
。在您的示例中,散点图在x轴上需要两个-
数据

也就是说,一旦你得到了第二个数值变量,你几乎已经回答了你自己的问题。差不多

ggplot(data = playlist, aes(x = Data, y = danceability)) +
  geom_jitter(aes(col = genre))

会给你想要的。

你遇到的问题是你已经映射了
x=genre
。因此,
genre
被转换为一个因子,然后绘制在
1
2

相反,您要做的是将数据绘制在x轴上的一个随机点上。一种简单的方法是随机采样
1:nrow(播放列表)
,如下所示:

ggplot(data = playlist, aes(x = sample(1:nrow(playlist),nrow(playlist)),
                            color = genre, y = danceability)) +
  geom_point(aes(col = genre)) + labs(x = "data")
请注意,您不再需要
geom\u抖动

数据

playlist <- structure(list(danceability = c(0.683, 0.768, 0.693, 0.765, 0.506, 
0.809, 0.628, 0.556, 0.72, 0.706, 0.414, 0.448, 0.687, 0.747, 
0.532, 0.483, 0.491, 0.224, 0.666, 0.416, 0.44, 0.362, 0.28, 
0.42, 0.115, 0.35, 0.519, 0.538, 0.507, 0.261), genre = c("pop", 
"pop", "pop", "pop", "pop", "pop", "pop", "pop", "pop", "pop", 
"pop", "pop", "pop", "pop", "pop", "heavy-metal", "heavy-metal", 
"heavy-metal", "heavy-metal", "heavy-metal", "heavy-metal", "heavy-metal", 
"heavy-metal", "heavy-metal", "heavy-metal", "heavy-metal", "heavy-metal", 
"heavy-metal", "heavy-metal", "heavy-metal")), row.names = c(NA, 
-30L), class = "data.frame")

playlist您可以创建一个ID列以在x轴上使用,而不是在流派上,然后使用
geom_point
。之后,如果您愿意,可以在绘图中取消显示ID标签。很高兴这有帮助。干杯