Julia 绘图添加自定义坐标轴子标签及区间高亮实现问题
实现带X轴子标签与区间高亮的Julia绘图方案
以下是可直接运行的完整实现代码,完全保留原有图表内容与tax主标签:
using Plots # 原有基础逻辑 tg = 0:0.001:0.7 points = rand(size(tg)[1]) sublabels = fill("Julia", size(tg)[1] ) tab = [tg points] sublabels[ tab[:,1] .<= 0.2 ] .= "A" sublabels[ 0.2 .< tab[:,1] .<= 0.6 ] .= "B" sublabels[ 0.6 .< tab[:,1] .<= 0.7 ] .= "C" tab = [tab sublabels] # 绘制基础图表 p = plot(tab[:,1], tab[:,2], xlabel = "tax", label="数据曲线") # 第一步:高亮区间边界 vline!(p, [0.2, 0.6], linestyle=:dash, color=:red, alpha=0.7, label="区间边界") # 第二步:添加X轴子标签 # 子标签默认放在曲线下方,可自行调整y值位置 y_sub = minimum(points) * 0.9 annotate!(p, 0.1, y_sub, text("A", 12, :center)) annotate!(p, 0.4, y_sub, text("B", 12, :center)) annotate!(p, 0.65, y_sub, text("C", 12, :center)) # 展示最终效果 display(p)
常用调整参数
- 子标签位置:如果希望子标签放在X轴下方不占用绘图区域,可额外增加底部边距后调整注释的y坐标:
plot!(p, bottom_margin=12Plots.mm) # 这里y值根据你的y轴实际范围调整,负数代表在y轴最小值以下 annotate!(p, 0.1, -0.1, text("A", 12, :center)) - 边界线样式:可修改
linestyle(:solid/:dot等)、color、linewidth参数自定义样式。 - 动态区间适配:如果区间规则不固定,可先遍历提取所有标签的区间上下限,自动计算中点位置生成注释,无需手动写坐标。
内容的提问来源于stack exchange,提问作者Fam
相关产品推荐
相关产品推荐

