我是{shapviz}包的最近用户,在自定义图表(如重要性图表)时遇到了一些困难.

例如,我想:

  • 在beeswarm图的情况下改变调色板和在条形图的情况下改变 colored颜色 ;
  • [something like 100]更改图例(标题和尺寸);
  • 更改数字的文本/标签(show_numbers = TRUE)[as if I were using the geom_text( ), 101 or 102 functions].

由于Shapviz图属于ggplot类型,我试图通过访问列表或添加图层来更改它们,但没有成功.

谢谢!

推荐答案

使用一些玩具数据,以下是你如何改变这些美学:

library(xgboost)
library(shapviz)
library(viridis)
library(ggplot2)

# Toy data
X_train <- data.matrix(iris[, -1])
dtrain <- xgb.DMatrix(X_train, label = iris[, 1], nthread = 1)
fit <- xgb.train(data = dtrain, nrounds = 10, nthread = 1)
x <- shapviz(fit, X_pred = X_train)

# Modify shapviz plot
p <- sv_importance(x, kind = "both", show_numbers = TRUE, fill = "red") +
  scale_colour_gradient(
    low = "darkblue", high = "skyblue",
    breaks = c(0, 1), labels = c("low", "high")
  ) +
  labs(colour = "My Title") +
  theme(
    legend.key.size = unit(2, "cm"),
    legend.title.position = "right",
    legend.title = element_text(angle = 90, hjust = 0.5)
  )

# Add geom_label and remove the geom_text
p2 <- p +
  geom_label(aes(x, y, label = label), data = layer_data(p, 4), fontface = "italic")

p2$layers[[4]] <- NULL

p2

创建于2024—04—08,reprex v2.1.0

R相关问答推荐

名称输出pmap on tible

更改编号列表的 colored颜色

将年度数据插入月度数据

根据多个条件增加y轴高度以适应geom_text标签

如何优化向量的以下条件赋值?

将Posict转换为数字时的负时间(以秒为单位)

使用未知字符数(不受限制的最大长度)的Lookback有什么好的替代方案?

将数据集旋转到长格式,用于遵循特定名称模式的所有变量对

ggplot R:X,Y,Z使用固定/等距的X,Y坐标绘制六边形热图

向R中的数据帧添加一列,该列统计另一列中每个唯一值的二进制观测值的数量

如何构建一个for循环来循环处理动物ID?

创建新列,其中S列的值取决于该行S值是否与其他行冗余

是否有一个R函数可以输出在输入的字符向量中找到的相应正则表达式模式?

替换在以前工作的代码中有x行&q;错误(geom_sf/gganimate/dow_mark)

如何将图例文本添加到图例符号中

策略表单连接两个非常大的箭头数据集,而不会 destruct 内存使用

R dplyr::带有名称注入(LHS of:=)的函数,稍后在:=的RHS上引用

如何创建直方图与对齐的每月箱?

在具有条件的循环中添加行

如何在给定的环境中找到函数的函数参数?