试图将黄土平滑曲线添加到散点图中

时间:2017-09-26 00:57:27

标签: r ggplot2 loess

我正在尝试在R中的散点图中添加黄土平滑拟合曲线。我似乎无法弄清楚下面的代码有什么问题...作为参考,变量{{1 }和poverty是数据框binge_all的列名。我已经加载了correlational_data包/库。

ggplot2

我使用library(ggplot2) p <- ggplot(correlational_data, aes(poverty, binge_all)) p <- p + geom_point(color = "blue") p <- p + geom_smooth(method = "loess") p sapply(correlational_data$poverty, class)来确定sapply(correlational_data$binge_all, class)poverty是否为类因素。不确定这是否有所作为。

更新以显示前10行数据

binge_all

1 个答案:

答案 0 :(得分:0)

正如其他人在评论中指出的那样,binge_allpoverty需要是数字,而不是因素。在这里,我使用您提供的代码和示例数据绘制数据。

# Create example data frame
correlational_data <- read.table(text = "   year                state binge_all poverty
1  2012              Alabama      12.3      19
                                 2  2012               Alaska      16.8    10.1
                                 3  2012              Arizona      15.3    18.7
                                 4  2012             Arkansas      11.8    19.8
                                 5  2012           California      16.9      17
                                 6  2012             Colorado      19.2    13.7
                                 7  2012          Connecticut      17.5    10.7
                                 8  2012             Delaware      18.6      12
                                 9  2012 'District of Columbia'      23.1    18.2
                                 10 2012              Florida      16.5    17.1",
                                 header = TRUE, stringsAsFactors = FALSE)

# Check the class
class(correlational_data$binge_all)
[1] "numeric"
class(correlational_data$poverty)
[1] "numeric"

# Plot the data   
library(ggplot2)

p <- ggplot(correlational_data, aes(poverty, binge_all))
p <- p + geom_point(color = "blue")
p <- p + geom_smooth(method = "loess")
p

enter image description here

请注意,如果您要将因子列转换为数字,请先转换为字符。以下是一个例子:

correlational_data$binge_all <- as.numeric(as.character(correlational_data$binge_all))
correlational_data$poverty <- as.numeric(as.character(correlational_data$poverty))

这将确保您转换实际数字,而不是因子的水平。