我已经使用RStudio中gapminder包中的数据在ggplot2中创建了一个图表。我很好奇如何将水平轴转换为对数刻度。我确实使用过scale_x_continuous函数,但是在运行代码后,图形消失了。
ggplot(data = gapminder07) + geom_point(mapping = aes(x = gdpPercap, y = lifeExp))
p <- ggplot(gapminder07, aes(x = gdpPercap, y=lifeExp, label = country))
p + geom_text()
p + scale_x_continuous(trans = 'log10')
编辑*添加拟合线时,会发生相同的问题。出现线,但数据点消失。
ggplot(data = gapminder07) + geom_point(mapping = aes(x = gdpPercap, y = lifeExp))
p <- ggplot(gapminder07, aes(x = gdpPercap, y=lifeExp, label = country))
p + geom_text()
p + geom_smooth()
答案 0 :(得分:0)
您通过第一次调用ggplot
创建了一个ggplot()
对象,然后将第二个ggplot
对象存储到变量p
中。在下一行中,当您调用p + geom_text()
时,仅用ggplot
就用第二个ggplot
对象覆盖了第一个geom_text()
对象。
基本上,您调用了以下代码:
ggplot(data = gapminder07) + geom_point(mapping = aes(x = gdpPercap, y = lifeExp))
ggplot(gapminder07, aes(x = gdpPercap, y=lifeExp, label = country)) + geom_text()
ggplot(gapminder07, aes(x = gdpPercap, y=lifeExp, label = country)) + scale_x_continuous(trans = 'log10')
每次调用p + ...
时,都会覆盖前一个图。相反,您应该执行类似...
ggplot(gapminder::gapminder, aes(x = gdpPercap, y = lifeExp, color = country)) + geom_point() + scale_x_continuous(trans = 'log10')