ggplot 图的图例错误
Error with legend of ggplot graph
我有一个包含三个变量的数据集:十个国家的经济自由度指数、GDP 总额和人均 GDP。
我正在尝试绘制一个图表,其中圆圈的大小应与每个国家/地区的 GDP 成正比。
但是,在图表的右侧,我得到的是这些蓝色方块,而不是不同大小的圆圈。
如何去掉这些蓝色方块,让 R 显示不同大小的圆圈?
这是我的结果:
这是我使用的数据和代码:
score <- c(60,65.7,48.9,47.9,44.1,67.1,81.4,71.2,61.0,68.7)
gdp <- c(35.146, 26.499,285.541,130.066,777.945, 20.352,999.595,361.402,102.811,11.411)
gdp.percapita <- c(1150.36,9506.12,7534.06,6247.28,18749.34,6190.75,43073.06,42596.55,11044.25,32036.09)
x <- data.frame(score, gdp, gdp.percapita)
p <- ggplot(data=x,aes(x= score, y= gdp.percapita, size = gdp))
p <- p + theme(axis.title.x = element_text(face="bold", size=20)) +
labs(x="Economic Index Freedom")
p <- p + theme(axis.title.y = element_text(face="bold", size=20)) +
labs(y="GDP per Capita")
p + geom_point(shape = 1) +
scale_size_area(max_size=25) +
stat_smooth(method = lm)
ggplot
调用中的 size
参数被传递给 geom_point
和 stat_smooth
。问题出在后者,它被视为线宽(我想)。将 size
移动到 geom_point
可以解决问题。
ggplot(data = x, aes(x = score, y = gdp.percapita)) +
geom_point(shape = 1, aes(size = gdp)) +
scale_size_area(max_size = 25) +
stat_smooth(method = lm) +
xlim(42, 84) +
xlab('economic index freedom') +
ylab('GDP per capita') +
theme_bw()
我有一个包含三个变量的数据集:十个国家的经济自由度指数、GDP 总额和人均 GDP。
我正在尝试绘制一个图表,其中圆圈的大小应与每个国家/地区的 GDP 成正比。
但是,在图表的右侧,我得到的是这些蓝色方块,而不是不同大小的圆圈。
如何去掉这些蓝色方块,让 R 显示不同大小的圆圈?
这是我的结果:
这是我使用的数据和代码:
score <- c(60,65.7,48.9,47.9,44.1,67.1,81.4,71.2,61.0,68.7)
gdp <- c(35.146, 26.499,285.541,130.066,777.945, 20.352,999.595,361.402,102.811,11.411)
gdp.percapita <- c(1150.36,9506.12,7534.06,6247.28,18749.34,6190.75,43073.06,42596.55,11044.25,32036.09)
x <- data.frame(score, gdp, gdp.percapita)
p <- ggplot(data=x,aes(x= score, y= gdp.percapita, size = gdp))
p <- p + theme(axis.title.x = element_text(face="bold", size=20)) +
labs(x="Economic Index Freedom")
p <- p + theme(axis.title.y = element_text(face="bold", size=20)) +
labs(y="GDP per Capita")
p + geom_point(shape = 1) +
scale_size_area(max_size=25) +
stat_smooth(method = lm)
ggplot
调用中的 size
参数被传递给 geom_point
和 stat_smooth
。问题出在后者,它被视为线宽(我想)。将 size
移动到 geom_point
可以解决问题。
ggplot(data = x, aes(x = score, y = gdp.percapita)) +
geom_point(shape = 1, aes(size = gdp)) +
scale_size_area(max_size = 25) +
stat_smooth(method = lm) +
xlim(42, 84) +
xlab('economic index freedom') +
ylab('GDP per capita') +
theme_bw()