matplotlib Python 画图

 今天学习了一下使用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()

matplotlib Python 画图_第1张图片

 以下是对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()

matplotlib Python 画图_第2张图片

 修改坐标轴的位置

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()

如下图,右坐标和上坐标轴已经消失。

matplotlib Python 画图_第3张图片

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()

matplotlib Python 画图_第4张图片

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()

matplotlib Python 画图_第5张图片



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()

matplotlib Python 画图_第6张图片

你可能感兴趣的:(python,matplotlib,numpy)