使用原生Plotly实现按数值设置差异化坐标轴标签格式
实现方法
你可以通过layout配置x轴的自定义刻度标签实现需求,完整可运行代码如下:
library(tidyverse) library(plotly) df <- data.frame(x = -5:5, y = 0:10) # 提前生成x轴刻度值和对应标签 x_ticks <- seq(min(df$x), max(df$x), 1) x_labels <- ifelse(x_ticks >= 0, paste0(x_ticks, "%"), as.character(x_ticks)) df %>% plot_ly() %>% add_markers(x = ~x, y = ~y) %>% layout( xaxis = list( tickvals = x_ticks, ticktext = x_labels ) )
代码说明
tickvals参数用于指定x轴要显示的所有刻度数值,你可以根据你的数据范围、想要的刻度密度调整seq的步长参数ticktext参数和tickvals一一对应,定义每个刻度显示的文本内容,这里通过ifelse判断数值大小,大于等于0的拼接百分号,小于0的直接保留原始数字格式
如果需要对y轴做同样的格式化,只需在layout中增加对应yaxis的配置即可。
内容的提问来源于stack exchange,提问作者DJC
相关产品推荐
相关产品推荐

