You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在gnuplot中绘制带颜色区分及日期轴的Renko图?

在Gnuplot中实现带颜色区分和自适应日期轴的Renko图完全可行

核心思路拆解

  1. 涨跌砖块颜色区分:通过判断砖块的价格变化(或数据中预存的涨跌标记),给上涨砖设绿色、下跌砖设红色,用实心填充样式。
  2. 保持水平间距的日期轴:用连续序号(或砖块的水平坐标基准)作为x轴的底层坐标保证砖块间距一致,再将日期标签绑定到对应位置,让Gnuplot自动适配显示密度。

具体脚本示例

假设你的data.dat格式为每行存储矩形对角坐标+日期:左x坐标 下y坐标 右x坐标 上y坐标 日期字符串,示例数据如下:

10 4200 20 4210 "2024-01-01"
20 4210 30 4220 "2024-01-02"
30 4220 40 4210 "2024-01-03"

对应的Gnuplot脚本:

# 输出设置
set terminal pngcairo enhanced font 'Arial,10'
set output 'renko_final.png'

# 坐标轴样式
set xlabel '日期'
set ylabel '标普500价格'
set xtics rotate by 45 right  # 旋转日期标签避免重叠
set grid ytics  # 可选:添加y轴网格辅助读数
set style fill solid 1.0  # 砖块实心填充

# 绘制Renko砖块+绑定日期轴
plot 'data.dat' \
     # 绘制涨跌砖块:判断上y>下y则绿色,否则红色
     using 1:2:3:4:($4>$2 ? rgb('#00cc00') : rgb('#cc0000')) \
     with rectangles linecolor rgb var notitle, \
     # 将日期标签绑定到砖块的水平中心位置,用隐藏点实现xtics
     '' using (($1+$3)/2):(0):xtic(5) with points pointtype 0 notitle

关键细节说明

  • 颜色控制:通过$4>$2判断砖块是上涨(上边界>下边界)还是下跌,用linecolor rgb var调用对应的颜色值;如果你的数据里已经有涨跌标记列(比如第6列是1/0),可以直接替换成using ...:6简化判断。
  • 日期轴自适应:用砖块的水平中点($1+$3)/2作为日期标签的x位置,Gnuplot会自动根据画布宽度调整显示的日期数量,不会挤压砖块间距;pointtype 0是隐藏点,只用来生成xtics标签。

内容的提问来源于stack exchange,提问作者nathanvy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 23:15:05