【问题标题】:matplotlib: stem plot with horizontal offsetmatplotlib:具有水平偏移的茎图
【发布时间】:2015-04-01 03:08:40
【问题描述】:

我想在同一个图上绘制 2 个茎图。 这是一个例子:

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

但是,我看不到如何向主干图添加偏移量。 (Y 轴 +1 或 +2)。

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

此功能类似于 Matlab 茎图中的“BaseValue”。

【问题讨论】:

  • 请说明您是否使用python或matlab并删除不必要的标签
  • 我使用 python (matplotlib),但我正在寻找 matlab 中“BaseValue”的等效功能。看来tom10给了我一个有效的答案。谢谢!
  • 好的,感谢您澄清这一点。如果tom10的回答解决了问题,请采纳他的回答。
  • 我不知道如何接受答案!如果我按箭头(向上),它说我需要 15 的声望。
  • 您必须单击箭头下方的复选标志。这里解释得很好:meta.stackexchange.com/questions/5234/…

标签: python matlab matplotlib plot


【解决方案1】:

您可以使用关键字bottom

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()

【讨论】:

    【解决方案2】:

    在 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])
    

    图:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-02-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多