matplotlib:带有水平偏移的茎图

时间:2015-04-01 03:08:41

标签: python matlab matplotlib plot

我想在同一个数字上绘制2个茎图。 这是一个例子: enter image description here

我在matplotlib中找到了这个干线图示例: http://matplotlib.org/examples/pylab_examples/stem_plot.html

但是,我不知道如何在干线图上添加偏移量。 (Y轴上+1或+2)。

也许另一种情节类型也适合我?我想用垂直条显示小事件。

此功能类似于" BaseValue"来自Matlab词干图。

2 个答案:

答案 0 :(得分:4)

您可以使用关键字bottom

enter image description here

from pylab import *

x = linspace(0.1, 2*pi, 10)
markerline, stemlines, baseline = stem(x, cos(x), '-.', bottom=.5)
setp(markerline, 'markerfacecolor', 'b')
setp(baseline, 'color','r', 'linewidth', 2)

show()

答案 1 :(得分:1)

在Matlab中使用refline作为解决方法,可以根据需要显示两个茎图。

clear all;

x = 1:5;
y1 = [1, 0, -1, 0, 1];
y2 = [-.5, 1, .5, -1, 0];

b1 = 0; % base line for y1
b2 = -2; % base line for y2

y1 = y1 + b1;
y2 = y2 + b2;

y = [y1; y2]';

h = stem(x,y);

set(h(1), 'BaseValue' , b1);
set(h(2), 'BaseValue' , b2);

hold on;

refline(0,b1); % refline was used a workaround

axis([1 5 -5 5])

图:

enter image description here