【问题标题】:Plot a pandas dataframe with vertical lines用垂直线绘制熊猫数据框
【发布时间】:2014-06-26 21:51:28
【问题描述】:

我想绘制一个数据框,其中每个数据点不表示为一个点,而是一条从零轴开始的垂直线,例如:

df['A'].plot(style='xxx')

xxx 是我需要的样式。

理想情况下,我希望能够根据数据框中另一列中的值为每个条形着色。

我确切地说我的 x 轴值是数字并且不是等距的。

【问题讨论】:

    标签: python plot pandas


    【解决方案1】:

    pandas 绘图工具是 matplotlib 的便捷包装器。我不知道直接通过 pandas 获得你想要的功能。

    你可以在几行 matplotlib 中得到它。大部分代码是做颜色映射的:

    import pandas as pd
    import matplotlib.pyplot as plt
    import numpy as np
    import matplotlib.colors as colors
    import matplotlib.cm as cmx
    
    #make the dataframe
    a = np.random.rand(100)    
    b = np.random.ranf(100)    
    df = pd.DataFrame({'a': a, 'b': b})
    
    # do the colour mapping
    c_norm  = colors.Normalize(vmin=min(df.b), vmax=max(df.b))
    scalar_map = cmx.ScalarMappable(norm=c_norm, cmap=plt.get_cmap('jet'))    
    color_vals = [scalar_map.to_rgba(val) for val in df.b]
    
    # make the plot
    plt.vlines(df.index, np.zeros_like(df.a), df.a, colors=color_vals)
    

    我已将 DataFrame 索引用于 x 轴值,但没有理由不能使用不规则间隔的 x 值。

    【讨论】:

      猜你喜欢
      • 2017-12-16
      • 2018-03-19
      • 2021-10-16
      • 1970-01-01
      • 2017-05-28
      • 2022-01-08
      • 2016-01-07
      • 2021-10-28
      • 2019-07-09
      相关资源
      最近更新 更多