簡體   English   中英

如何使用 R 中的 ggplot2 在漸變上為多個 geom_lines 着色?

[英]How to colour multiple geom_lines on a gradient using ggplot2 in R?

在這里問了一個關於如何為 pdp-ice plot 着色的類似問題。 從那以后,我想出了一種通過預測值為圖着色的方法。 但是,我仍然遇到如何手動 select 顏色漸變的問題。 我正在使用iml package 來創建預測......但我覺得這本質上是一個ggplot2問題,因此,我打開了一個不同的問題。

在下面的示例中,我正在波士頓數據上創建一個隨機森林 model 並使用 rf model 在iml中創建冰圖。

library("iml")
library("randomForest")
library(ggplot2)

# We train a random forest on the Boston dataset:
data("Boston", package = "MASS")
rf = randomForest(medv ~ ., data = Boston, ntree = 50)
# Use iml to generate predictions
mod = Predictor$new(rf, data = Boston)
# Compute the individual conditional expectations for the feature room
ice = FeatureEffect$new(mod, method = 'ice', feature = "rm")

現在我可以使用plot(ice) plot 這將創建一個帶有灰線的冰 plot。 但是,我想在漸變上為這些線條着色。 我可以通過預測值對它們進行着色,如下所示:

df <- ice$results
 ggplot(df, aes(x = rm, y = .value, color = .value)) + geom_line(aes(group = .id))

這將產生一個 plot 像這樣: 冰圖

這就是我想要的(即,冰 plot 顏色漸變),但我無法找到手動設置 plot 的顏色的方法......例如,如果我希望低值是紅色和高值是藍色的。 我已經嘗試了一些ggplot2選項..但我無法讓它們工作?

所以,我通過使用解決了這個問題:

ggplot(df, aes(x = rm, y = .value, color = .value )) + 
      geom_line(aes(group = .id)) +
       scale_colour_gradient2(low = "red", mid = "yellow", high = "blue", midpoint = 25)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM