您遇到的问题是您映射了x = genre。因此,genre 被转换为一个因子,然后绘制在1 或2。
相反,您想要将数据绘制在x-axis 上的随机点上。一个简单的方法是像这样随机抽样1:nrow(playlist):
ggplot(data = playlist, aes(x = sample(1:nrow(playlist),nrow(playlist)),
color = genre, y = danceability)) +
geom_point(aes(col = genre)) + labs(x = "data")
请注意,您不再需要 geom_jitter。
数据:
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")
注意:此数据由optical character recognition从您的屏幕截图中得出,如有错误请见谅。