【问题标题】:Stem plot in matplotlib?matplotlib中的茎图?
【发布时间】:2019-04-17 14:42:19
【问题描述】:

我想要plot(x, sin(x)),但不是从(xi,yi)(x_i+1,y_i+1) 我想要一条垂直线到从(xi,0)(xi,yi) 的每个点,因为有时点之间的插值没有意义(例如量化数据)(而且它看起来比没有垂直线要好得多)。

很像下面的茎图(来自 matlab 文档),但可以选择关闭圆圈和点之间的“-”。 不幸的是,我自己在 matplotlib 文档中找不到合适的绘图函数。

【问题讨论】:

    标签: python matplotlib


    【解决方案1】:

    matplotlib 中也有一个stem plot(又名棒棒糖图)。


    您可以在下面找到来自the docs 的示例。

    import matplotlib.pyplot as plt
    import numpy as np
    
    # returns 10 evenly spaced samples from 0.1 to 2*PI
    x = np.linspace(0.1, 2 * np.pi, 10)
    
    markerline, stemlines, baseline = plt.stem(x, np.cos(x), '-.')
    
    # setting property of baseline with color red and linewidth 2
    plt.setp(baseline, color='r', linewidth=2)
    
    plt.show()
    


    如果要调整基线的y位置,可以使用bottom参数。

    (改编)示例:

    import matplotlib.pyplot as plt
    import numpy as np
    
    # returns 10 evenly spaced samples from 0.1 to 2*PI
    x = np.linspace(0.1, 2 * np.pi, 10)
    
    plt.stem(x, np.cos(x), '-.', bottom=-2)
    
    plt.show()
    

    【讨论】:

    • 谢谢,现在我需要弄清楚如何删除蓝色圆圈。
    • @user948652 您只需要适当地设置markerfmt 参数,例如markerfmt='.'。看看调用参数的文档,那里解释得很好。
    • 有没有办法以负无穷大开始词干?我想要这样的东西:namoseley.files.wordpress.com/2012/09/…
    • @endolith 可以使用bottom参数指定基线的y位置。
    • @moooeeeep:一定是新的? stem() got an unexpected keyword argument 'bottom'
    【解决方案2】:

    我想你想使用 linestyle='steps--'

    plot(x, sin(x), linestyle='steps--')
    

    【讨论】:

    • 这是一个水平阶梯图,不像 .gif 链接中那样做垂直线
    • 我的错,我认为@moooeeeeep 有它
    猜你喜欢
    • 2018-06-26
    • 2013-07-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-21
    • 1970-01-01
    • 2013-02-04
    • 1970-01-01
    相关资源
    最近更新 更多