R 同一行中多个值的ggplot
我有一个数据框,在同一行中有多个值R 同一行中多个值的ggplot,r,R,我有一个数据框,在同一行中有多个值 index price 1 1000,2000,3000 2 2000,500 数据框有12行,并非所有price行的长度都相等。我想用索引沿x轴和价格沿y轴绘制索引与价格的对比图。我有以下代码- ggplot(data_m, aes(x = 1:12, y = data_m$price)) 我得到错误-错误:美学必须是长度1或与数据(12):y相同 如何绘制价格列中的每个值?也许您正在查找此值。您必须重塑数据,然后按照@t
index price
1 1000,2000,3000
2 2000,500
数据框有12行,并非所有price
行的长度都相等。我想用索引
沿x轴和价格
沿y轴绘制索引
与价格
的对比图。我有以下代码-
ggplot(data_m,
aes(x = 1:12,
y = data_m$price))
我得到错误-错误:美学必须是长度1或与数据(12):y相同
如何绘制价格列中的每个值?也许您正在查找此值。您必须重塑数据,然后按照@thescigue所述的策略进行绘图。这里使用tidyverse
方法,使用separate_rows()
拆分行中的值,然后使用full_join()
压缩所需的索引。接下来是代码:
library(tidyverse)
#Data and plot
df %>% separate_rows(price,sep=',') %>%
mutate(price=as.numeric(price)) %>%
full_join(data.frame(index=1:12)) %>%
ggplot(aes(x=factor(index),y=price))+
geom_point()+
xlab('index')
输出:
使用的一些数据:
#Data
df <- structure(list(index = 1:2, price = c("1000,2000,3000", "2000,500"
)), class = "data.frame", row.names = c(NA, -2L))
输出:
Hi@Misha,您需要以整洁的格式获取数据。请参见此处:其中每列每行仅包含1个值。
#Data and plot 2
df %>% separate_rows(price,sep=',') %>%
mutate(price=as.numeric(price)) %>%
full_join(data.frame(index=1:12)) %>%
ggplot(aes(x=factor(index),y=price,color=factor(index)))+
geom_point()+
xlab('index')+
theme(legend.position = 'none')