今天学习了一下使用matplotlib画图,具体步骤以及代码如下:
首先是关于线性函数的图像画法
import matplotlib.pyplot as plt
import numpy as np
x=np.linspace(-3,3,50)
y1=2*x+1
y2=x**2
plt.figure()#关于Y1的图像1
plt.plot(x,y1)
plt.figure(num=3,figsize=(8,5)) #关于Y2的图像2
plt.plot(x,y2)
plt.plot(x,y1,color="red",linewidth=1.0,linestyle="--") #figure3里面有两条线,y1和y2,其中y1为红色宽度为1.0的虚线
#设置坐标轴
plt.xlim((-1,2))
plt.ylim((-2,3))
plt.xlabel('x轴')
plt.ylabel('y轴')
#设置不同的坐标轴取值范围
new_ticks=np.linspace(-1,2,5) #范围是(-1,2)分为5个单位
#print(new_ticks)
plt.xticks(new_ticks)
plt.show()
以下是对Y坐标轴的改动
import matplotlib.pyplot as plt
import numpy as np
x=np.linspace(-3,3,50)
y1=2*x+1
y2=x**2
plt.figure()#关于Y1的图像1
plt.plot(x,y1)
plt.figure(num=3,figsize=(8,5)) #关于Y2的图像2
plt.plot(x,y2)
plt.plot(x,y1,color="red",linewidth=1.0,linestyle="--") #figure3里面有两条线,y1和y2,其中y1为红色宽度为1.0的虚线
#设置坐标轴
plt.xlim((-1,2))
plt.ylim((-2,3))
plt.xlabel('x轴')
plt.ylabel('y轴')
#设置不同的坐标轴取值范围
new_ticks=np.linspace(-1,2,5) #范围是(-1,2)分为5个单位
#print(new_ticks)
plt.xticks(new_ticks)
#对纵坐标的点设置描述
plt.yticks([-2,-1.8,-1.1,22,3],
['really bad','bad','normal','good','really good'])
plt.show()
修改坐标轴的位置
import matplotlib.pyplot as plt
import numpy as np
x=np.linspace(-3,3,50)
y1=2*x+1
y2=x**2
plt.figure()#关于Y1的图像1
plt.plot(x,y1)
plt.figure(num=3,figsize=(8,5)) #关于Y2的图像2
plt.plot(x,y2)
plt.plot(x,y1,color="red",linewidth=1.0,linestyle="--") #figure3里面有两条线,y1和y2,其中y1为红色宽度为1.0的虚线
#设置坐标轴
plt.xlim((-1,2))
plt.ylim((-2,3))
plt.xlabel('x轴')
plt.ylabel('y轴')
#设置不同的坐标轴取值范围
new_ticks=np.linspace(-1,2,5) #范围是(-1,2)分为5个单位
#print(new_ticks)
plt.xticks(new_ticks)
#对纵坐标的点设置描述
plt.yticks([-2,-1.8,-1,1.22,3],
['really bad','bad','normal','good','really good'])
#修改坐标轴的位置
#gca='get current axis' 获得当前的轴
ax=plt.gca()
ax.spines['right'].set_color('none') #右边的脊柱设置为没有颜色
ax.spines['top'].set_color('none') #上边的脊柱设置为没有颜色(取消上边的坐标轴)
plt.show()
如下图,右坐标和上坐标轴已经消失。
import matplotlib.pyplot as plt
import numpy as np
x=np.linspace(-3,3,50)
y1=2*x+1
y2=x**2
plt.figure()#关于Y1的图像1
plt.plot(x,y1)
plt.figure(num=3,figsize=(8,5)) #关于Y2的图像2
plt.plot(x,y2)
plt.plot(x,y1,color="red",linewidth=1.0,linestyle="--") #figure3里面有两条线,y1和y2,其中y1为红色宽度为1.0的虚线
#设置坐标轴
plt.xlim((-1,2))
plt.ylim((-2,3))
plt.xlabel('x轴')
plt.ylabel('y轴')
#设置不同的坐标轴取值范围
new_ticks=np.linspace(-1,2,5) #范围是(-1,2)分为5个单位
#print(new_ticks)
plt.xticks(new_ticks)
#对纵坐标的点设置描述
plt.yticks([-2,-1.8,-1,1.22,3],
['really bad','bad','normal','good','really good'])
#修改坐标轴的位置
#gca='get current axis' 获得当前的轴
ax=plt.gca()
ax.spines['right'].set_color('none') #右边的脊柱设置为没有颜色
ax.spines['top'].set_color('none') #上边的脊柱设置为没有颜色(取消上边的坐标轴)
ax.xaxis.set_ticks_position('bottom')
ax.yaxis.set_ticks_position('left')
ax.spines['bottom'].set_position(('data',0)) #x轴移动到y轴0的位置
ax.spines['left'].set_position(('data',0)) #y轴移动到x轴0的位置
plt.show()
import matplotlib.pyplot as plt
import numpy as np
x=np.linspace(-3,3,50)
y1=2*x+1
y2=x**2
plt.figure()#关于Y1的图像1
plt.plot(x,y1)
plt.figure(num=3,figsize=(8,5)) #关于Y2的图像2
#设置坐标轴
plt.xlim((-1,2))
plt.ylim((-2,3))
plt.xlabel('x轴')
plt.ylabel('y轴')
#设置不同的坐标轴取值范围
new_ticks=np.linspace(-1,2,5) #范围是(-1,2)分为5个单位
#print(new_ticks)
plt.xticks(new_ticks)
#对纵坐标的点设置描述
plt.yticks([-2,-1.8,-1,1.22,3],
['really bad','bad','normal','good','really good'])
l1,=plt.plot(x,y2,label='up') #设置标签为up 这里的逗号别忘记,不然出不来图例
l2,=plt.plot(x,y1,color="red",linewidth=1.0,linestyle="--",label='down') #figure3里面有两条线,y1和y2,其中y1为红色宽度为1.0的虚线
#输出图例
plt.legend(handles=[l1,l2],labels=['aaa','bbb'],loc='best') #处理l1和l2,标签为[],位置为‘最好的位置’也可以选择bottom right(右下角)
plt.show()
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(-3, 3, 50)
y = 2*x + 1
plt.figure(num=1, figsize=(8, 5),)
plt.plot(x, y,)
ax = plt.gca()
ax.spines['right'].set_color('none')
ax.spines['top'].set_color('none')
ax.spines['top'].set_color('none')
ax.xaxis.set_ticks_position('bottom')
ax.spines['bottom'].set_position(('data', 0))
ax.yaxis.set_ticks_position('left')
ax.spines['left'].set_position(('data', 0))
x0 = 1 #添加某一点的x轴坐标
y0 = 2*x0 + 1
plt.plot([x0, x0,], [0, y0,], 'k--', linewidth=2.5) #利用两个点plot出一条虚线,两个点的横坐标集合为[x0,x0],纵坐标集合为[y0,0],,,k代表黑色
plt.scatter([x0, ], [y0, ], s=50, color='b') #散点图scatter 某一点用scatter s=大小,b=蓝色
# method 1:
#####################
plt.annotate(r'$2x+1=%s$' % y0, xy=(x0, y0), xycoords='data', xytext=(+30, -30),
textcoords='offset points', fontsize=16,
arrowprops=dict(arrowstyle='->', connectionstyle="arc3,rad=.2"))
# method 2:
########################
plt.text(-3.7, 3, r'$This\ is\ the\ some\ text. \mu\ \sigma_i\ \alpha_t$',
fontdict={'size': 16, 'color': 'r'}) #开始位置(-3,7,3),r'$ $'是为了字体好看变成美元的字体格式,其中r为转义字符 空格要用转移字符\ ,这样才会有正确的空格 sigma_i 中_i是为了有下角标
plt.show()