av6989413
一张图内生成多个子图
x=np.arange(1,100)
fig=plt.figure()
#参数分别为:子图总行数,子图总列数,子图位置
ax1 = fig.add_subplot(221)
ax1.plot(x,x)
ax2 = fig.add_subplot(222)
ax2.plot(x,-x)
plt.show()

也可以直接使用plt.subplot(221)
plt.plot(x,x)画出子图
生成多张图
#多图
fig1=plt.figure()
ax1=fig1.add_subplot(111)
ax1.plot([1,2,3],[3,2,1])
fig2=plt.figure()
ax2=fig2.add_subplot(111)
ax2.plot([1,2,1],[1,2,3])
plt.show()

网格
plt.grid(True)
图例
x = np.arange(1,11,1)
plt.plot(x,x*2,label='normal')
plt.plot(x,x*3,label='fast')
plt.plot(x,x*4,label='faster')
plt.legend()#显示图例

修改坐标轴范围
plt.xlim([x1,x2]) plt.ylim([x1,x2])
内含xmin等参数,可只调整一边
调整坐标轴刻度
ax = plt.gca()#获取当前坐标轴
ax.locator_params('x',nbins=5)#只调整x轴,分为5格
#也可plt.locator_params('x',nbins=5)
坐标轴为日期
import matplotlib.pyplot as plt
import numpy as np
import matplotlib as mpl
import datetime
import pandas as pd
#修改日期坐标轴
fig = plt.figure()
start = datetime.datetime(2015,1,1)
stop = datetime.datetime(2016,1,1)
delta = datetime.timedelta(days=1)
dates = mpl.dates.drange(start,stop,delta)
y = np.random.rand(len(dates))
ax = plt.gca()
ax.plot_date(dates,y,linestyle='-',marker='')
plt.grid(True)
#调整日期格式
date_format = mpl.dates.DateFormatter('%Y-%m')
ax.xaxis.set_major_formatter(date_format)
#plt.xticks(pd.date_range('2015-01','2016-01'),rotation=90)#设置时间标签显示格式
#刻度标识自适应
fig.autofmt_xdate()
plt.show()

添加坐标轴
plt.twinx()
plt.plot(x,y2,'r')
添加注释
plt.annotate()
添加文字
plt.text()
填充颜色
plt.fill() 填充曲线与x轴之间
plt.fill_between() 填充两条曲线之间 可以使用where=y1>y2限定范围
生成形状
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.patches as mpatches
fig,ax = plt.subplots()
xy1 = np.array([0.2,0.2])
circle = mpatches.Circle(xy1,0.1)#圆心位置 半径
ax.add_patch(circle)
plt.axis('equal')#调整比例
plt.show()
美化样式
plt.style.use(' ')#有几种自带图表样式可选择
Python Matplotlib 数据分析实战:绘图技巧解析
本文介绍了Python数据分析库matplotlib的基本用法,包括如何创建多子图、设置坐标轴范围、添加图例、调整坐标轴刻度、处理日期坐标轴、添加双轴、注释和文字,以及使用fill和fill_between填充颜色和形状,以及美化图表样式的技巧。
317

被折叠的 条评论
为什么被折叠?



