预备知识(matplotlib画图的基础知识):
条形图(竖着的):bar
水平条形图(横着的):barh
折线图:plot
饼图:pie
========================
xticks、yticks:设置坐标轴刻度
xlabel、ylabel:设置坐标轴标签
xlim、ylim:设置坐标轴数据范围
title:标题
legend:图例
grid:网格线
text:添加数据标签
*****************************************
有时候我们需要同时显示好几张图,就会用到figure()函数
一、同时显示多张图
import numpy as np
import matplotlib.pyplot as plt
x=np.linspace(-1,1,50)
y1=x**2
y2=2*x+1
plt.figure()
plt.plot(x,y1)
plt.figure()
plt.plot(x,y2)
plt.show()
同时显示多张图时,在每一句 plt.plot(x,y) 前边添加 plt.figure() ,就可以画出多张图。
二、利用figure函数指定图片编号、大小
1、如果上述figure函数的参数为空,即plt.figure(),那么图片名字默认为1,2,3...
指定了num=3 or 其他数值后,图片编号为指定的编号。
2、figsize, 图片长和宽
如下:
plt.figure(num=3,figsize=(8,5))
三、线宽、线的类型
plt.plot(x,y2,color='red',linewidth=1.0,linestyle='--')
四、在一张图中画多条线
plt.figure()用来确定画图的图片
plt.plot()用来画线
import numpy as np
import matplotlib.pyplot as plt
x=np.linspace(-1,1,50)
y1=x**2
y2=2*x+1
plt.figure(num=3,figsize=(8,5))
plt.plot(x,y2,color='red',linewidth=1.0,linestyle='--')
plt.plot(x,y1)
plt.show()
五、设置坐标轴
1、
plt.xlim()设置x坐标轴范围
plt.ylim()设置y坐标轴范围
plt.xlabel("i am x")设置x轴标签
plt.ylabel("i am y")设置y轴标签
import numpy as np
import matplotlib.pyplot as plt
x=np.linspace(-1,1,50)
y1=x**2
y2=2*x+1
plt.figure()
plt.plot(x,y1)
plt.xlim((-1.1))
plt.xlabel("i am x")
plt.ylabel("i am y")
plt.show()
2、将y轴的值设置为文字
import numpy as np
import matplotlib.pyplot as plt
x=np.linspace(-1,1,50)
y1=x**2
y2=2*x+1
plt.figure()
plt.plot(x,y1)
new_ticks=np.linspace(-1,2,5)
print(new_ticks)
plt.xticks(new_ticks)
plt.yticks([-2,0,2],["bad","zero","good"])
plt.show()
另外,为了让字体更好看,可以修改字体:
plt.yticks([-2,0,2],[r"$bad$",r"$zero$",r"$good$"])
如果坐标轴的文字找那个有空格,则需要在空格前加"\",转义字符
\alpha 就能打印出alpha 符号
六、修改坐标轴的位置
1、隐藏figure中的边界线
在代码中加入以下语句,就会隐藏相应的“脊梁”(最边上的直线)
ax=plt.gca()
ax.spines["left"].set_color("none")
ax.spines["top"].set_color("none")
如图所示,左边和上边的边边没有了。
2、移动坐标轴的位置
第一步。用figure中的边线表示x轴、y轴
ax.xaxis.set_ticks_position("bottom")#使用底下的线表示 X 坐标轴
ax.yaxis.set_ticks_position("left")#使用左边的线表示 Y 坐标轴
第二步。移动坐标轴到指定的值的位置。
#开始移动坐标轴
ax.spines["bottom"].set_position(('data',0))# bottom:x轴, 参数0表示x轴对准y=0
ax.spines["left"].set_position(('data',0))#left :y轴,0表示对准x=0
完整代码:
import numpy as np
import matplotlib.pyplot as plt
x=np.linspace(-1,1,10)
y1=x**2
y2=2*x+1
plt.figure()
plt.plot(x,y1)
new_ticks=np.linspace(-1,2,5)
plt.xticks(x)
plt.yticks([-2,0,2],["bad","zero","good"])
ax=plt.gca()
ax.spines["right"].set_color("none")
ax.spines["top"].set_color("none")
ax.xaxis.set_ticks_position("bottom")#使用底下的线表示 X 坐标轴
ax.yaxis.set_ticks_position("left")#使用左边的线表示 Y 坐标轴
#开始移动坐标轴
ax.spines["bottom"].set_position(('data',0))# bottom:x轴, 参数0表示x轴对准y=0
ax.spines["left"].set_position(('data',0))#left :y轴,0表示对准x=0
plt.show()
七、plot函数的参数:
matplotlib.pyplot.plot(*args, **kwargs):
plot(x, y) #plot x, y使用默认的线条样式和颜色
plot(x, y, 'bo') #plot x,y用蓝色圆圈标记
plot(y) #plot y用x作为自变量
plot(y, 'r+') #同上,但是是用红色作为标记
plot函数绘制不同的线对应的参数:
线的颜色对应的参数: