pandas.DataFrame.plot.barh#
- DataFrame.plot.barh(x=None, y=None, color=None, **kwargs)[源代码]#
绘制水平条形图。
水平条形图是一种通过长度与所表示值成比例的矩形条形来呈现定量数据的图表。条形图显示离散类别之间的比较。图表的一个轴显示正在比较的具体类别,另一个轴表示测量值。
- 参数:
- x标签或位置,可选
允许将一列绘制到另一列。如果未指定,则使用 DataFrame 的索引。
- y标签或位置,可选
允许将一列绘制到另一列。如果未指定,则使用所有数值列。
- color字符串,类数组,或字典,可选
DataFrame 各列的颜色。可能的值包括:
单个颜色字符串,可通过名称、RGB 或 RGBA 代码引用,例如“red”或“#a98d19”。
颜色字符串序列,可通过名称、RGB 或 RGBA 代码引用,将递归用于每列。例如,[‘green’,’yellow’] 将依次为每列的条形填充绿色或黄色。如果只有一列要绘制,则只使用颜色列表中的第一个颜色。
形式为 {列名 : 颜色} 的字典,以便每列将相应着色。例如,如果你的列名为 a 和 b,那么传递 {‘a’: ‘green’, ‘b’: ‘red’} 将把列 a 的条形着色为绿色,把列 b 的条形着色为红色。
- **kwargs
其他关键字参数记录在
DataFrame.plot()中。
- 返回:
- matplotlib.axes.Axes 或其 np.ndarray
当
subplots=True时,将返回一个 ndarray,其中每个列对应一个matplotlib.axes.Axes。
另请参阅
DataFrame.plot.bar垂直条形图。
DataFrame.plot使用 matplotlib 绘制 DataFrame 图。
matplotlib.axes.Axes.bar使用 matplotlib 绘制垂直条形图。
示例
基本示例
>>> df = pd.DataFrame({"lab": ["A", "B", "C"], "val": [10, 30, 20]}) >>> ax = df.plot.barh(x="lab", y="val")
将整个 DataFrame 绘制为水平条形图
>>> speed = [0.1, 17.5, 40, 48, 52, 69, 88] >>> lifespan = [2, 8, 70, 1.5, 25, 12, 28] >>> index = [ ... "snail", ... "pig", ... "elephant", ... "rabbit", ... "giraffe", ... "coyote", ... "horse", ... ] >>> df = pd.DataFrame({"speed": speed, "lifespan": lifespan}, index=index) >>> ax = df.plot.barh()
为 DataFrame 绘制堆叠的水平条形图
>>> ax = df.plot.barh(stacked=True)
我们可以为每列指定颜色
>>> ax = df.plot.barh(color={"speed": "red", "lifespan": "green"})
将 DataFrame 的一列绘制为水平条形图
>>> speed = [0.1, 17.5, 40, 48, 52, 69, 88] >>> lifespan = [2, 8, 70, 1.5, 25, 12, 28] >>> index = [ ... "snail", ... "pig", ... "elephant", ... "rabbit", ... "giraffe", ... "coyote", ... "horse", ... ] >>> df = pd.DataFrame({"speed": speed, "lifespan": lifespan}, index=index) >>> ax = df.plot.barh(y="speed")
绘制 DataFrame 与所需列的对比图
>>> speed = [0.1, 17.5, 40, 48, 52, 69, 88] >>> lifespan = [2, 8, 70, 1.5, 25, 12, 28] >>> index = [ ... "snail", ... "pig", ... "elephant", ... "rabbit", ... "giraffe", ... "coyote", ... "horse", ... ] >>> df = pd.DataFrame({"speed": speed, "lifespan": lifespan}, index=index) >>> ax = df.plot.barh(x="lifespan")