gpt4 book ai didi

r - 绘图中的水平/垂直线

转载 作者:行者123 更新时间:2023-12-03 11:48:36 27 4
gpt4 key购买 nike

我正在使用plotly包,并尝试向图形添加水平线。有什么办法使用plotly吗?

可以使用ggplot2ggplotly函数完成此操作,如下所示:

library(plotly)

p <- ggplot() +
geom_hline(yintercept = 4) +
xlim(c(0,10)) +
ylim(c(0,10))

ggplotly(p)

但是我不能将此添加到现有的绘图区中。

而且,我的图表的轴是不固定的,因此很难(但并非不可能)仅计算出水平线的x和y坐标系,但我宁愿只自动添加一个。

我已经研究了y0和dy参数,但是我似乎也无法获得使它们起作用的代码。我不太确定他们到底要做什么,但是我认为他们也许正是我想要的?我找不到很好的用法示例。

最佳答案

有两种主要方法(使用数据或“纸”坐标)。假设数据坐标,最简单的当前方法是通过add_segments():

plot_ly() %>%
add_segments(x = 4, xend = 4, y = 0, yend = 10) %>%
add_segments(x = 3, xend = 5, y = 5, yend = 5)

enter image description here

注意我们如何在数据坐标中对这些行的范围进行硬编码。因此,缩放和平移绘图时,该线将被“剪裁”为这些值。如果您不希望剪切这些行,请使用 line shape,将xref / yref设置为纸张(这会将图形区域设置为0-1比例,而不是x / y数据比例):
vline <- function(x = 0, color = "red") {
list(
type = "line",
y0 = 0,
y1 = 1,
yref = "paper",
x0 = x,
x1 = x,
line = list(color = color)
)
}

hline <- function(y = 0, color = "blue") {
list(
type = "line",
x0 = 0,
x1 = 1,
xref = "paper",
y0 = y,
y1 = y,
line = list(color = color)
)
}

plot_ly() %>%
layout(shapes = list(vline(4), hline(5)))

enter image description here

关于r - 绘图中的水平/垂直线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34093169/

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