基于组的绘图
Plot based on group
我有总共 500 行的数据集:250 首流行音乐,250 首重金属。我如何在 R 中生成此图?
我的实际数据集并没有像我给出的例子那样分开。我应该把它分开吗?
到目前为止我做了什么
ggplot(data = playlist, aes(x = genre, y = danceability)) +
geom_jitter(aes(col = genre))
请参阅 this post 关于创建简单的独立示例。
根据您提供给我们的屏幕截图,我看不出您如何制作您想要的图,因为您只有一个数字变量 - danceability
。在您的示例中,散点图在 x 轴上需要两个 - Data
。
就是说,一旦您获得了第二个数字变量,您几乎就已经回答了自己的问题。像
ggplot(data = playlist, aes(x = Data, y = danceability)) +
geom_jitter(aes(col = genre))
给你想要的。
您遇到的问题是您映射了 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根据您的截图导出,如有错误请见谅。
我有总共 500 行的数据集:250 首流行音乐,250 首重金属。我如何在 R 中生成此图?
我的实际数据集并没有像我给出的例子那样分开。我应该把它分开吗?
到目前为止我做了什么
ggplot(data = playlist, aes(x = genre, y = danceability)) +
geom_jitter(aes(col = genre))
请参阅 this post 关于创建简单的独立示例。
根据您提供给我们的屏幕截图,我看不出您如何制作您想要的图,因为您只有一个数字变量 - danceability
。在您的示例中,散点图在 x 轴上需要两个 - Data
。
就是说,一旦您获得了第二个数字变量,您几乎就已经回答了自己的问题。像
ggplot(data = playlist, aes(x = Data, y = danceability)) +
geom_jitter(aes(col = genre))
给你想要的。
您遇到的问题是您映射了 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根据您的截图导出,如有错误请见谅。