如何解决使用R绘制所有刻度线
我编写了一个代码,使用我的数据对散点图进行了细分。这是一张图:
这是x轴上的小时数。如您所见,并非全部都出现在x轴上。我怎样才能使24小时都处在轴心上?即使例如在数据框中没有23点的值,我也希望它在x轴上。该怎么做?
这是我的代码:
plot <- function(df) {
subplotList <- list()
for(metric in unique(df$metrics)){
subplotList[[metric]] <- df[df$metrics == metric,] %>%
plot_ly(
x = ~ hr,y = ~ actual,name = ~ paste(metrics," - ",time_pos),colors = ~ time_pos,hoverinfo = "text",hovertemplate = paste(
"<b>%{text}</b><br>","%{xaxis.title.text}: %{x:+.1f}<br>","%{yaxis.title.text}: %{y:+.1f}<br>","<extra></extra>"
),type = "scatter",mode = "lines+markers",marker = list(
size = 7,color = "white",line = list(width = 1.5)
),width = 700,height = 620
) %>% layout(autosize = T,legend = list(font = list(size = 8)))
}
subplot(subplotList,nrows = length(subplotList),margin = 0.05)
}
解决方法
可以在layout
中通过属性xaxis
来实现,就像这样。滴答或中断可以通过tickvals
进行设置,滴答标签可以通过ticktext
进行设置。
在下面的可重现示例中,使用一些随机数据对此进行了说明:
library(plotly)
set.seed(42)
d <- data.frame(
x = sort(sample(24,15)),y = 1:15 + runif(15),z = 1:15 + runif(15)
)
plot_ly(d) %>%
add_trace(x = ~x,y = ~y,type = "scatter",mode = "lines+markers") %>%
add_trace(x = ~x,y = ~z,mode = "lines+markers") %>%
layout(xaxis = list(tickvals = 1:24,ticktext = paste0(1:24,"h")))
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。