gpt4 book ai didi

r - 在相关矩阵中包装轴标签

转载 作者:行者123 更新时间:2023-12-04 19:57:07 26 4
gpt4 key购买 nike

我正在尝试使用 ggcorr() function within library(GGally) 创建相关矩阵。该包按预期工作,但我遇到了一个问题,我想编辑坐标轴标签在绘图上的显示方式。

目前,他们会自动添加一个 _ 或 .用空格或其他字符分隔名称。理想情况下,我想在名称中的空格之间创建一个换行符 (\n),以便可以轻松阅读长名称和短名称,并且不会超出适当的列和行。

我找到了其他人在 SO 上使用的解决方案,包括使用 str_wrap() ,但它在 ggplot() 内调用,而不是这个特定的包。我已检查 the R code for the package ,但找不到专门编辑这些标签的位置。每当我尝试编辑 X 或 Y 轴文本时,它都会添加一个全新的轴和一组标签。

我目前dcast()一个数据帧到结果数据帧,甚至当我gsub() "\n"进入玩家姓名栏,他们会在 dcast() 中迷路过渡。

这是我正在使用的示例。我希望能够在标签的名字和姓氏之间自动创建换行符。

library(GGally)
library(ggplot2)

test <- structure(list(Date = structure(c(17100, 17102, 17103, 17106,
17107), class = "Date"), `Alexis Ajinca` = c(1.2, NA, 9.2, 6.4,
NA), `Anthony Davis` = c(95.7, 76.9, 29, 67, 24.9), `Buddy Hield` = c(9.7,
4.7, 17, 8, 28.3), `Cheick Diallo` = c(NA, NA, 3.2, NA, NA),
`Dante Cunningham` = c(0.5, 27.6, 14, 13.5, -1), `E'Twaun Moore` = c(19.2,
16.1, 22, 20.5, 10.1), `Lance Stephenson` = c(16.1, 31.6,
8, 8.1, 34.8), `Langston Galloway` = c(10.9, 2, 13.8, 2.2,
29.4), `Omer Asik` = c(4.7, 6.6, 9.9, 15.9, 14.2), `Solomon Hill` = c(4.7,
13.2, 12.8, 35.2, 4.4), `Terrence Jones` = c(17.1, 12.4,
9.8, NA, 20.8), `Tim Frazier` = c(40.5, 40.2, 18.3, 44.1,
7.2)), .Names = c("Date", "Alexis Ajinca", "Anthony Davis",
"Buddy Hield", "Cheick Diallo", "Dante Cunningham", "E'Twaun Moore",
"Lance Stephenson", "Langston Galloway", "Omer Asik", "Solomon Hill",
"Terrence Jones", "Tim Frazier"), row.names = c(NA, -5L), class = "data.frame")

ggc <- ggcorr(test[,-1], method = c("pairwise","pearson"),
hjust = .85, size = 3,
layout.exp=2)
ggc

enter image description here

感谢您的任何帮助,如果您有任何问题或需要任何澄清,请告诉我!

最佳答案

几种方法

您可以编辑 ggcorr 返回的对象

g = ggplot_build(ggc)
g$data[[2]]$label = gsub("_", "\n", g$data[[2]]$label )
grid::grid.draw(ggplot_gtable(g))

或者您可以创建一个新的数据框并使用 geom_text 手动添加标签。 .这可能会更好地控制文本对齐和位置。
# I dont see how to suppress the labels so just set the size to zero
ggc <- ggcorr(test[,-1], method = c("pairwise","pearson"),
hjust = .85,
size = 0, # set this to zero
layout.exp=2)

# Create labels and plot
dat <- data.frame(x = seq(test[-1]), y = seq(test[-1]),
lbs = gsub(" ", "\n", names(test[-1]) ))
ggc + geom_text(data=dat, aes(x, y, label=lbs), nudge_x = 2, hjust=1)

关于r - 在相关矩阵中包装轴标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40406837/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com