使用ggplot根据另一列中的值绘制两个变量

时间:2018-12-16 02:54:17

标签: r ggplot2

我正在使用一个包含几列的数据集,例如大陆,经济状况和识字率。我正在寻找一种根据亚洲国家的经济状况和识字率绘制散点图的方法:

economy <- data$Economic status
literacy <- data$literacy rate

ggplot(data = subset(data, Continent == 'Asian countries'), aes(x = economy, y = literacy)) +
  geom_point()

但是我不断收到一条错误消息,说美学与数据的长度不同。我不确定是否在使用该代码之前是否必须按大陆修剪数据,或者以某种方式将经济/文化变量更改为仅来自代码中的亚洲国家。

谢谢!

1 个答案:

答案 0 :(得分:0)

您的data = subset...一词告诉ggplot您想仅使用大陆为亚洲的行来使用data的较短版本。那么您的aes映射就是指向量,这些向量是原始数据(包括所有大洲)的长度。 ggplot需要它们具有相同的长度;它们不是事实,这表明它们没有引用相同的数据。

我认为这样应该可以工作:

ggplot(data = subset(data, Continent == 'Asian countries'),  
  aes(x =`Economic status`, y = `literacy rate`)) +  
  geom_point()