我想绘制一条超出轴极限的线。我已尝试将clipping
属性设置为off
,如下所示:
figure
axis([0, 10, 0, 10])
hold on
set(gca,'outerPosition',[0, 0.5, 1, 0.5])
lh = line([2, 8],[8, -5]);
set(lh, 'clipping', 'off')
print('line_plot.png')
我得到一个看起来像这样的数字:
有没有办法让线延伸到x轴以外?我正在使用gnuplot和AquaTerm。这可能在另一个终端吗?
答案 0 :(得分:2)
在gnuplot中,我建议注释一个箭头,它可以延伸到轴之外。这是实现您在问题中概述的最小示例:
# define the location of your plot:
bm = 0.15
lm = 0.12
rm = 0.95
tm = 0.95
set lmargin at screen lm
set rmargin at screen rm
set bmargin at screen bm
set tmargin at screen tm
# define your axis limits:
xmax = 10.0
xmin = 0.0
ymax = 10.0
ymin = 0.0
set xrange [xmin:xmax]
set yrange [ymin:ymax]
# define you data points:
xstart = 2
ystart = 8
xend = 8
yend = -5
# convert points into screen coordinates:
dx_rel = (rm-lm)/(xmax-xmin)
dy_rel = (tm-bm)/(ymax-ymin)
xstart_rel = lm + dx_rel * xstart
ystart_rel = bm + dy_rel * ystart
xend_rel = lm + dx_rel * xend
yend_rel = bm + dy_rel * yend
# define 'arrow' without head in screen coordinates:
set arrow 1 from screen xstart_rel,ystart_rel \
to screen xend_rel,yend_rel nohead
# plot will not show when empty, include dummy plot command:
set parametric
plot xstart, ystart not
您在gnuplot中引用的clip
option不允许您将绘图扩展到轴上。它旨在删除靠近轴的数据点,以避免符号与这些轴重叠
但是,arrow
可以在screen
坐标中指定(在这种情况下,屏幕是绘图窗口),它允许您在轴外绘制。
要匹配特定的数据坐标,您必须将它们转换为屏幕坐标。只有在这些屏幕坐标中定义绘图边界时,这才能可靠地工作。这样,您就可以计算每个数据点在屏幕上的位置
在set
arrow
时,请务必在坐标前使用screen
来表示正确的坐标系。
上面的脚本会给你这个情节: