Matplotlib基础知识(⼀)
Matplotlib是⼀个Python语⾔的2D会图库,它⽀持各种平台,并且功能强⼤,能够轻易绘制出各种专业的图像。
介绍
Matplotlib适⽤于各种环境,包括:
-Python脚本
-IPython shell
-jupyter notebook
-Web应⽤服务器
-⽤户图形界⾯⼯具包
使⽤Matplotlib,能够轻易的⽣成各种类型的图像,例如:直⽅图,波谱图,条形图,散点图等,并且可以轻松的实现定制。
Matplotlib的基本元素
Matplotlib中的基本元素图表包括的元素:
—x轴和y轴:⽔平和垂直的轴线
—x轴和y轴刻度:刻度表⽰坐标轴均分隔,包括最⼩刻度和最⼤刻度
—x轴和y轴刻度标签:表⽰特定坐标轴的值
matplotlib中subplot—绘图区域:实际绘图的区域。
import matplotlib.pyplot as plt
import numpy as np
from matplotlib.font_manager import FontProperties #字体管理器
'''只含单⼀曲线的图'''
x = np.linspace(0, 10, 10)
# plot参数只有⼀个,x轴的坐标默认从0,1,2..开始
plt.plot(x) # 这个参数绘制出来的是⼀条直线
plt.plot(x, x**2) # 这两个参数绘制出来的是⼀个抛物线
plt.show()
'''包含多个曲线的图'''
# 1.可以使⽤多个plot函数(推荐),在⼀个图中绘制多个曲线
x = np.arange(0, 10, 1) # arange函数⽤于创建等差数组,arange返回⼀个array对象,第三个数代表的是步长
plt.plot(x, 2*x)
plt.plot(x, x/2)
plt.plot(x, x**2)
plt.show()
# 2.也可以在⼀个plot函数中传⼊多对X,Y值,在⼀个图中绘制多个曲线
x = np.arange(0, 10, 1)
plt.plot(x, x**2, x, 5*x, x, x/3)
plt.show()
'''⽹格线'''
# 绘制正弦余弦使⽤id(True)⽅法添加⽹格线
x = np.arange(-np.pi, np.pi, 0.01)
plt.plot(x, np.sin(x), x, np.cos(x))
plt.show()
'''设置grid参数(参数与plot函数相同),使⽤plt⾯向对象的⽅法,创建多个⼦图显⽰不同⽹格线,lw代表li
newidth,线的粗细,alpha表⽰线的明暗程度,color代表颜⾊''' # 创建对象,图形就是所谓的对象 sub=⼦,在同⼀个窗⼝显⽰多个图形
plt.figure(figsize=(12, 9)) # 设置图标的⼤⼩
axes = plt.subplot(1, 3, 1) # 创建1⾏3列第⼀个对象
x = np.arange(-20, 20, 0.1)
axes.plot(x, np.sin(x))
axes.plot(x, np.sin(x))
axes1 = plt.subplot(1, 3, 2) # 创建1⾏3列第⼆个对象
x1 = np.arange(-20, 20, 0.1)
axes1.plot(x1, np.cos(x1))
axes2 = plt.subplot(1, 3, 3) # 创建1⾏3列第三个对象=subplot(133)
axes2.plot(x, np.sin(x))
plt.show()
'''坐标轴界限'''
# axis⽅法:如果axis⽅法没有任何参数,则返回当前坐标轴的上下限axis(xmin=,ymin=)
x = np.random.randn(10)
plt.axis([-5, 15, -5, 10]) # 设置x轴从-5到15,y轴从-5到10
plt.plot(x)
plt.show()
# plt.axis("xxx")"tight"、"off"、"equal"... 设置坐标轴类型,关闭坐标轴
x = np.linspace(-5, 5, 100)
plt.plot(x, np.tan(x))
plt.axis("off") # off关闭坐标轴,equal改变x轴和y轴的幅度
plt.show()
# 画圆
x = np.linspace(-5, 5, 100)
# plt.figure(figsize=(4, 4)) # 设置成圆与plt.axis("equal")效果⼀样
plt.plot(np.sin(x), np.cos(x))
plt.axis("equal")
plt.show()
# xlim⽅法和ylim⽅法除了plt.axis⽅法,还可以通过xlim,ylim⽅法设置坐标轴范围
y = np.arange(0, 10, 1)
plt.plot(y)
plt.xlim(-2, 12)
plt.ylim(2, 10)
plt.show()
# 坐标轴标签 xlabel⽅法和ylabel⽅法,plt.ylabel("y=x^2+5",rotation=60)旋转
x = np.arange(0, 10, 2)
y = x**2 + 5
plt.plot(x, y)
plt.ylabel("f(x)=x**2+5", fontsize=12, rotation=0, horizontalalignment="right") # rotation旋转# plt.xlabel("x", fontsize=12)
# 设置图表中的汉字格式
font = FontProperties(fname=r"c:\windows\", size=15)
plt.xlabel('横坐标', fontproperties=font)
plt.show()
# 标题 title⽅法
x = np.linspace(-np.pi, np.pi, 100)
plt.plot(x, np.sin(x))
plt.title("f(x)=sin(x)", fontsize=12, loc="center")
plt.show()
'''图例使⽤的是legend⽅法
两种传参⽅法:(1)【推荐使⽤】在plot函数中增加label参数;(2)在legend⽅法中传⼊字符串列表'''
# 在plot函数中增加label参数
x = np.arange(0, 10, 1)
plt.plot(x, x, label="normal")
plt.plot(x, x**2, label="fast")
plt.plot(x, x**2, label="fast")
plt.plot(x, x/2, label="slow")
plt.legend()
plt.show()
# 在legend⽅法中传⼊字符串列表
x = np.arange(0, 10, 1)
plt.plot(x, x, x, 2*x, x, x/2)
plt.legend(["normal", "fast", "slow"]) # 添加图例参数传递需要中括号
plt.show()
# label参数为"_xxx",则图例中不显⽰ plt.plot("x, x*1.5, label="_xxx")
x = np.arange(0, 10, 1)
plt.plot(x, x, label="normal")
plt.plot(x, x**2, label="_fast")
plt.plot(x, x/2, label="_slow")
plt.legend()
plt.show()
'''loc参数设置图例的显⽰位置
best=0, upper right=1, upper left=2, lower left=3, lower right=4, right=5,
center left=6, center right=7, lower center=8, upper center=9, center=10'''
x = np.arange(0, 10, 1)
plt.plot(x, x, x, 2*x, x, x/2)
plt.legend(["normal", "fast", "slow"], loc="right")
plt.show()
# loc参数可以是2元素的元组,表⽰图例左下⾓的坐标图例也可以超过图的界限loc=(-0.1,0.9)
x = np.arange(0, 10, 1)
plt.plot(x, x, x, 2*x, x, x/2)
plt.legend(["normal", "fast", "slow"], loc=(1, 1)) # loc=(0.5, 1)相对值,相对的图⽚宽⾼,1个图⽚的宽度单位
plt.show()
# ncol参数 col控制图例中有⼏列
x = np.arange(0, 10, 1)
plt.plot(x, x, x, 2*x, x, x/2)
plt.legend(["normal", "fast", "slow"], loc=0, ncol=1)
plt.show()
# 修改线条样式 linestyle、color、marker
x1 = np.random.randn(100)
x2 = np.random.randn(100)
x3 = np.random.randn(100)
plt.plot(x1.cumsum(), c="b", line, marker="o") # cumsum求累加和
plt.plot(x2.cumsum(), c="y", line, marker=">") # marker设置图例的形状
plt.plot(x3.cumsum(), c="r", line, marker="*")
plt.legend(["x1", "x2", "x3"])
plt.savefig("pic.jpg", dpi=500, facecolor="green")
plt.show()
'''保存图⽚
figure.savefig的选项
---filename:“含有⽂件路径的字符串或Python的⽂件型对象。图像格式由⽂件扩展名推断得出,例如,.pdf推断出PDF,.png推断出PNG("png","pdf","svg","ps","eps"....)
---dpi:图像分辨率(每英⼨点数),默认为100
---facecolor:图像的背景⾊,默认为"W(⽩⾊)"'''
# plt.savefig("pic.jpg", dpi=500) # 保存图⽚时出现空⽩后应该在 plt.show() 之前调⽤ plt.savefig()
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论