# ---
# jupyter:
#   jupytext:
#     text_representation:
#       extension: .py
#       format_name: light
#       format_version: '1.5'
#       jupytext_version: 1.14.4
#   kernelspec:
#     display_name: Python 3
#     language: python
#     name: python3
# ---

# # Matplotlib图鉴——基础柱状图
#
# ## 公众号：可视化图鉴

import matplotlib
print(matplotlib.__version__) #查看Matplotlib版本
import pandas as pd
print(pd.__version__) #查看pandas版本
import numpy as np
print(np.__version__) #查看numpy版本
import matplotlib.pyplot as plt 
plt.rcParams['font.sans-serif'] = ['SimHei']  #设置中文

# 注意，代码在以下环境全部通过测试:
# - Python 3.7.1
# - Matplotlib == 3.0.2
# - pandas == 0.23.4
# - numpy == 1.15.4
#
# 因版本不同，可能会有部分语法差异，如有报错，请先检查拼写及版本是否一致！

# ### 基础柱状图——堆叠柱状图

# +
x = ['周一', '周二', '周三', '周四', '周五', '周六', '周日']
y1 = [7,6,5,4,3,2,1]
y2 = [1,2,3,3,1,1,0.5]

plt.figure(figsize=(10,7))#设置画布的尺寸

plt.bar(x, y1, label="系列1",edgecolor = 'black')
plt.bar(x, y2, label="系列2",edgecolor = 'black')

plt.legend(loc=1,fontsize=14)  # 设置图例位置
plt.ylabel('我是Y轴',fontsize=16)
plt.xlabel('我是X轴',fontsize=16)
plt.title("基础柱状图——堆叠柱状图",fontsize=18)

plt.show()
# -

# ### 水平堆叠柱状图
#
# 使用`plt.barh`使用方法类比`MA_A_01`基础柱状图

# +
x = ['周一', '周二', '周三', '周四', '周五', '周六', '周日']
y1 = [7,6,5,4,3,2,1]
y2 = [1,2,3,3,1,1,0.5]

plt.figure(figsize=(10,7))#设置画布的尺寸

plt.barh(x, y1, label="系列1",edgecolor = 'black')
plt.barh(x, y2, label="系列2",edgecolor = 'black')

plt.legend(loc=1,fontsize=14)  # 设置图例位置
plt.ylabel('我是Y轴',fontsize=14)
plt.xlabel('我是X轴',fontsize=14)
plt.title("基础柱状图——堆叠柱状图",fontsize=18)


plt.show()
# -

# ### 堆叠柱状图——添加百分比

# +
x = ['周一', '周二', '周三', '周四', '周五', '周六', '周日']
y1 = [7,6,5,4,3,2,1]
y2 = [1,2,3,3,1,1,0.5]

plt.figure(figsize=(9,6),dpi = 100)#设置画布的尺寸

plt.bar(x, y1, label="系列1",edgecolor = 'black')
plt.bar(x, y2, label="系列2",edgecolor = 'black')

plt.legend(loc=1,fontsize=14)  # 设置图例位置
plt.ylabel('我是Y轴',fontsize=16)
plt.xlabel('我是X轴',fontsize=16)
plt.title("基础柱状图——堆叠柱状图",fontsize=18)

for x1, y1, y2 in zip(x, y1, y2):

    p1 = y1/(y1+y2)
    p2 = y2/(y1+y2)

    plt.text(x1 , y2 + (y1 - y2)* 0.4, '{:.0%}'.format(p1), ha='center',fontsize = 15)
    plt.text(x1 , y2 * 0.4, '{:.0%}'.format(p2), ha='center',fontsize = 15)

plt.show()
# -



StarcoderdataJupyterScriptsDedupFiltered