import matplotlib.pyplot as plt plt.rcParams["font.sans-serif"] = ['SimHei'] plt.rcParams['axes.unicode_minus'] = False # 绘制水平条状图 index = np.arange(5) values1 = np.random.randint(10, 17, 5) values2 = np.random.randint(10, 17, 5) values3 = np.random.randint(10, 17, 5) # 绘制条状图 bar_height = 0.3 plt.barh(index, values1, height=0.3, label='社保项目1', color='r') plt.barh(index+bar_height, values2, height=0.3, label='社保项目2', color='b') plt.barh(index+bar_height*2, values3, height=0.3, label='社保项目2', color='y') # y轴标签 plt.yticks(index + bar_height, list('ABCDE')) # 显示数值标签 for a, b in zip(values1, index): plt.text(a, b, '%.0f' % a, ha='left', va= 'center', fontsize=7) for a, b in zip(values2, index): plt.text(a, b+bar_height, '%.0f' % a, ha='left', va= 'center', fontsize=7) for a, b in zip(values3, index): plt.text(a, b+bar_height*2, '%.0f' % a, ha='left', va= 'center', fontsize=7) # 设置标题 plt.title('社保项目营收', fontsize=20) plt.xlabel('项目类型') plt.ylabel('项目合同额(亿元)') plt.axis([0, 20, -0.4, 5]) plt.legend(loc=4) plt.show()
网络异常,图片无法展示
|
3. 饼图
除了条状图, 饼图也可以用来表示数据.用pie()函数制作饼图很简单.
from pandas import Series, DataFrame import pandas as pd import numpy as np import matplotlib.pyplot as plt plt.rcParams["font.sans-serif"] = ['SimHei'] plt.rcParams['axes.unicode_minus'] = False %matplotlib inline # 设置图像大小 plt.figure(figsize=(9,9)) # 设置标签 labels = ['Java开发', '项目经理', '测试运维人员', 'Python开发', '架构师'] # 标签对应的值 values = [6000, 1000, 2000, 7000, 500] # 每一个标签饼图的颜色 colors = ['red', '#FEDD62', 'blue', 'gray', 'green'] # 那一块内容需要脱离饼图凸显, 可选值0-1 explode = [0.1, 0.1, 0, 0, 0] # autopct='%1.1f%%'表示显示百分比 # shadow显示阴影 # startangle 正值表示逆时针旋转 plt.pie(values, labels=labels, colors=colors, explode=explode, startangle=90, shadow=True, autopct='%1.1f%%') # 设置为标准圆形 plt.axis('equal') # 显示图例 plt.legend(loc=2) plt.title('东软软件工程师人员职位占比') plt.show()