r语言 - 将相关性和p值添加到绘图图中



我使用ggplot2创建一个点图,然后将相关系数添加到该图表中。接下来,我使用plot来查看每个数据点的信息。但是,图中字体样式有一个错误

我需要R = 0.87和p = 2.2e-16,而不是&;斜体(R)&;或"斜体(P)",同时保持映射部分在stat_cor。我猜,在情节上不能把italic(p)部分理解为代码。解决方案不应该修复手动添加文本,我需要计算"R"one_answers"P".

代码如下:

p1 <- ggplot(iris) +
geom_point(aes(Sepal.Length, Petal.Length)) +
stat_cor(mapping = aes(Sepal.Length, Petal.Length))
p2 <- ggplotly(p1)
p2

您可以在图表中添加注释-任何类型的R函数和html代码都将作为文本的一部分工作。

仅图解

一个可能的解决方案是直接使用plot,而不是使用ggplot然后转换。

代码应该是:

p2 <- plot_ly(data = iris, x=~Sepal.Length, y = ~Petal.Length) |>   #base R pipe operator
add_annotations(
xref = "paper", yref = "paper",
x = 0.1, y = 0.9, 
text = paste0("<i>R</i> = ", round(cor(iris$Sepal.Length, iris$Petal.Length),2), "<br>",
"<i>P</i> = ", formatC(cor.test(iris$Sepal.Length, iris$Petal.Length)$p.value,
format="e", digits=2)),
showarrow = F,   # Does not show an arrow indicating the text position
align = "left")  #align the text left
p2
  • "paper"定义x和y如何应用(相对于轴(纸)或特定值)
  • x = 0.1, y = 0.9表示文本将放置在x轴的10%和y轴的90%处。
  • text是文本本身。我用基本函数计算R和p值,用html符号编辑文本。

使用ggplotly

由于您更喜欢使用ggplotly,因此可以对其使用完全相同的注释。在本例中,代码是:

p1 <- ggplot(iris) + geom_point(aes(Sepal.Length, Petal.Length))
p2 <- ggplotly(p1) |>
add_annotations(
xref = "paper", yref = "paper",
x = 0.01, y = 0.95, 
text = paste0("<i>R</i> = ", round(cor(iris$Sepal.Length, iris$Petal.Length),2),
"<br>",
"<i>P</i> = ", formatC(cor.test(iris$Sepal.Length, iris$Petal.Length)$p.value,
format="e", digits=2)),
showarrow = F,   # Does not show an arrow indicating the text position
align = "left")  #align the text left
p2

相关内容

  • 没有找到相关文章

最新更新