用垂直线绘制一个pandas数据帧

时间:2014-06-26 07:12:08

标签: python plot pandas

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

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

其中xxx是我需要的风格。

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

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

1 个答案:

答案 0 :(得分: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值。