python 用 matplotlib 制作瀑布图步骤详解

1、加载库

2、绘图

# 配置字体,显示中文
mpl.rcParams['font.sans-serif'] = ['SimHei']
# 配置坐标轴刻度值模式,显示负号
mpl.rcParams['axes.unicode_minus'] = True

# 定义数据
x = np.array([1, 2, 3, 4, 5, 6, 7])*2
y1 = np.array([0.5, 0.0, 1.4, 2.7, 1.5, 3.3, 1.5])
y2 = np.array([0.4, 0.5, 0.3, 0.3, 0.4, 0.3, 0.25])
y3 = np.array([20.66, 21.5, 23, 7, 24.5, 32, 20])
y4 = np.array([0.7, 0.4, 2.2, 0.9, 0.7, 0.3, 0.5])
y5 = np.array([3, 16, 12.2, 13.6, 10, 50, 19])
labels = list('ABCDEFG')

w = 0.2

fig, ax = plt.subplots(figsize=(12, 8),
                       facecolor='cornsilk')

# 绘制柱状图
## 第 1 层柱状图
i = 0
ax.bar(x=x,    # 柱体在 x 轴上的坐标位置
       bottom=0,
       height=y1,    # 柱体的高度
       width=w,
       color='dodgerblue',
#        edgecolor='m',
       )
## 第 2 层柱状图
i = 1
ax.bar(x= x+w*i,  # 柱体在 x 轴上的坐标位置
       bottom=y1,
       height=y2,    # 柱体的高度
       width=w,
       color='orange',
#        edgecolor='g',
       )

## 第 3层柱状图
i = 2
ax.bar(x= x+w*i,    # 柱体在 x 轴上的坐标位置
       bottom=y1+y2,
       height=y3,    # 柱体的高度
       width=w,
       color='gray',
       alpha=0.5,
#        edgecolor='g',
       tick_label=labels,
       )

## 第 4 层柱状图
i = 3
ax.bar(x= x+w*i,    # 柱体在 x 轴上的坐标位置
       bottom=y1+y2+y3,
       height=y4,    # 柱体的高度
       width=w,
       color='orange',
#        alpha=0.5,
#        edgecolor='g',
       )
## 第 5 层柱状图
i = 4
ax.bar(x= x+w*i,    # 柱体在 x 轴上的坐标位置
       bottom=y1+y2+y3+y4,
       height=y5,    # 柱体的高度
       width=w,
       color='dodgerblue',
#        alpha=0.5,
#        edgecolor='g',
       )
for i, j in zip(x+w*3, y1+y2+y3+y4+y5+1):
    ax.text(x=i,
            y=j,
            s=f'{j:.2f}',
            size=12,
            color='black',
            family='Arial')
ax.set_yticks(ticks=range(0, 101, 10))
# 添加图例
# ax.legend()

# 设置网格线
ax.grid(axis='y',
          ls=':'
#           alpha=0.6
       )

3、用 DataFrame 和 for 循环简化上面的代码

图形:

Original: https://www.cnblogs.com/shanger/p/13060665.html
Author: 赏尔
Title: python 用 matplotlib 制作瀑布图步骤详解

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/15661/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

最近整理资源【免费获取】:   👉 程序员最新必读书单  | 👏 互联网各方向面试题下载 | ✌️计算机核心资源汇总