我在下面有一些数据
> x.row10
2003 2004 2005 2006 2007 2008 2009 2012
drift av bil 12770 12440 14910 12640 16230 16000 16260 NA
utemåltider 5700 6600 6050 7830 8870 7990 7580 9860
resor, hotell 5620 5820 7960 9600 8210 9390 9890 NA
möbler, inventarier, textilier , hushållsutrustning 8540 10840 13400 9450 9910 11860 10430 13040
hyra/avgift för hyres-/borätt (inkl garage) 43360 44020 45160 49430 45370 44090 48740 NA
köpta livsmedel 26420 27910 28160 29100 28310 33020 35910 33740
hushållstjänster 9490 11690 13770 8650 7250 10390 11490 17140
transport 27230 30810 28810 28410 30500 30390 29360 34890
bostad 67890 67250 71200 75210 71000 73490 74710 81820
fritid och kultur 34900 35860 43600 46770 43540 46160 45840 51000
totala utgifterna 215300 219870 241920 241060 229290 253590 255950 277260
我想创建一个ggplot,其中 colnames
映射到 x
变量, rownames
映射到 y
变量 . 基本上我只想分别在图表上绘制每年所有行名的数据点 . 这与一个显示不同行名的颜色aestethic因子图例一起 .
我的尝试
ggplot(x.row10, aes(x = colnames(x.row10), y = rownames(x.row10)) ) + geom_point()
但我明白了
错误:美学必须是长度为1或与dataProblems相同的长度:colnames(x.row10)
怎么解决这个问题?
1 回答
通常,
ggplot
喜欢"long data",其中每一行都是一个度量,而不是将它们分组 . 要解决此问题,我们可以使用包tidyr
使您的数据变长(或融化) . 您可能需要查看dat2,作为"long"或"melted"数据的示例 .这是输出:
由于你的数据难以进入,这就是我使用的(注意,如果你想要一个确切的代码,可能会有一些差异,尝试在你的问题中添加一个
dput(x.row10)
)