【问题标题】:Histogram with breaking axis and interlaced colorbar具有断轴和交错颜色条的直方图
【发布时间】:2012-10-13 04:34:18
【问题描述】:

我有那些数据

        a       b       c       d       e
alpha   5.51    0.60    -0.12   26.90   76284.53
beta    3.39    0.94    -0.17   -0.20   -0.20
gamma   7.98    3.34    -1.41   7.74    28394.93
delta   2.29    1.24    0.40    0.29    0.28

我想做一个漂亮的可发布直方图,就像这个

但在 y 轴上有一个中断,所以我们可以计算出 abcd 的变化e 以便数据不会像这个一样被 e 列中的极值挤压,而是使用交错的颜色条直方图:

我想在 python(matplotlib、pandas、numpy/scipy)或mathematica...或任何其他开放和免费的高级语言(R、scilab、...)中执行此操作。谢谢你的帮助。

编辑:通过 pandas 使用 matplotlib 允许使用左下角“hspace”的选项按钮调整两个子图之间的空间。

【问题讨论】:

    标签: python wolfram-mathematica histogram pandas


    【解决方案1】:

    你见过this 的例子吗?这是 matplotlib 中损坏的 y 轴图。

    希望这会有所帮助。

    结合 pandas 得到:

    import pandas as pd
    import matplotlib.pyplot as plt
    from StringIO import StringIO
    
    data = """\
            a       b       c       d       e
    alpha   5.51    0.60    -0.12   26.90   76284.53
    beta    3.39    0.94    -0.17   -0.20   -0.20
    gamma   7.98    3.34    -1.41   7.74    28394.93
    delta   2.29    1.24    0.40    0.29    0.28
    """
    
    df = pd.read_csv(StringIO(data), sep='\s+')
    
    f, axis = plt.subplots(2, 1, sharex=True)
    df.plot(kind='bar', ax=axis[0])
    df.plot(kind='bar', ax=axis[1])
    axis[0].set_ylim(20000, 80000)
    axis[1].set_ylim(-2, 30)
    axis[1].legend().set_visible(False)
    
    axis[0].spines['bottom'].set_visible(False)
    axis[1].spines['top'].set_visible(False)
    axis[0].xaxis.tick_top()
    axis[0].tick_params(labeltop='off')
    axis[1].xaxis.tick_bottom()
    d = .015
    kwargs = dict(transform=axis[0].transAxes, color='k', clip_on=False)
    axis[0].plot((-d,+d),(-d,+d), **kwargs)
    axis[0].plot((1-d,1+d),(-d,+d), **kwargs)
    kwargs.update(transform=axis[1].transAxes)
    axis[1].plot((-d,+d),(1-d,1+d), **kwargs)
    axis[1].plot((1-d,1+d),(1-d,1+d), **kwargs)
    plt.show()
    

    【讨论】:

    • 这个数字有误导性,上下图有不同的y尺度。在一个图中应该是一致的。
    猜你喜欢
    • 1970-01-01
    • 2018-11-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-19
    • 1970-01-01
    • 2017-04-27
    • 2015-04-04
    相关资源
    最近更新 更多