# 绘制多条折线 x = np.linspace(0, 2* np.pi,num=20) y = np.sin(x) # 调用绘制线性图函数plot() plt.plot(x, y, color='#3589FF', # 线的颜色 linestyle=':', # 线的风格 linewidth=3, # 线的宽度 marker='o', # 标记点的样式 markerfacecolor='r', # 标记点的颜色 markersize=10, # 标记点的大小 alpha=0.7, # 图形的透明度 label="sin(x)" #设置图例的label ) siny = y.copy() cosy = np.cos(x) plt.plot(x, cosy, color='y', # 线的颜色 linestyle='-', # 线的风格 linewidth=3, # 线的宽度 marker='*', # 标记点的样式 markerfacecolor='b', # 标记点的颜色 markersize=15, # 标记点的大小 alpha=0.9, # 图形的透明度 label="cos(x)" #设置图例的label ) # 设置x,y轴的label plt.xlabel('时间(s)') plt.ylabel('电压(V)') plt.legend() plt.title('电压随时间变化的线性图') # 调用show方法显式 plt.show()
将DataFrame绘制成线性图
条状图
条状图也是非常常用的一种图表类型. 条形图是统计图资料分析中最常用的图形。主要特点有:
- 能够使人们一眼看出各个各个项目数据的大小。
- 易于比较各个不同项目数据之间的差别。
2.1. 垂直条状图
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(11, 20, 5) values2 = np.random.randint(11, 20, 5) values3 = np.random.randint(11, 20, 5) # bar宽度 bar_width = 0.3 # 每一个bar占0.3宽度 plt.bar(index-bar_width, values1, width=bar_width, alpha=0.7, label='社保项目1', color='b') plt.bar(index, values2, width=bar_width, alpha=0.7, label='社保项目2', color='r') plt.bar(index+bar_width, values3, width=bar_width, alpha=0.7, label='社保项目3', color='g') # 显示图例 plt.legend(loc=1) # 设置X轴、Y轴数值范围 # plt.xlim(-0.5, 5) # plt.ylim(10, 20) plt.axis([-0.6, 5, 10, 20]) # 设置x轴刻度标签 rotation旋转角度 plt.xticks(index, ['社保项目'+str(ix) for ix in range(1, 6)], rotation=30) # 设置标题 plt.title('社保项目营收', fontsize=20) plt.xlabel('项目类型') plt.ylabel('项目合同额(亿元)') # 显示数值标签 for a,b in zip(index, values1): plt.text(a-bar_width, b, '%.0f' % b, ha='center', va= 'bottom', fontsize=7) for a,b in zip(index, values2): plt.text(a, b, '%.0f' % b, ha='center', va= 'bottom', fontsize=7) for a,b in zip(index, values3): plt.text(a+bar_width, b, '%.0f' % b, ha='center', va= 'bottom', fontsize=7) # 显示网格 plt.grid() plt.show()
from pandas import DataFrame,Series 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 data_frame = DataFrame({ '东软熙康': np.random.randint(10, 100, 5), '东软医疗': np.random.randint(10, 100, 5), '东软睿道': np.random.randint(10, 100, 5), }) plt.plot(data_frame, marker='o') # 显示图例 plt.legend(data_frame, loc=2) # 设置x轴刻度标签 plt.xticks([0, 1, 2, 3, 4], ['first', 'secod', 'third', 'forth', 'fifth']) plt.title('东软子公司1-5月份在职人员数量') plt.xlabel('月份') plt.ylabel('在职人数(百人)') # True 显示网格 # linestyle 设置线显示的类型(一共四种) # color 设置网格的颜色 # linewidth 设置网格的宽度 # plt.grid(True, linestyle = "-.", color = "r", linewidth = "3") plt.grid() # 显示图形 plt.show()