matplotlib python作图(一)

Matplotlib的设计理念是能够用轻松简单的方式生成强大的可视化效果,是Python学习过程中核心库之一。被用在python中绘制数组的2D图形库,可视化非常方便。

调用并简化写成plt

import matplotlib.pyplot as plt

举个栗子1:(从栗子1开始都是在不断的增加新的参数或其他内容)

import matplotlib.pyplot as plt
import numpy as np           #上面两行调用两个包,并写成简写形式plt和np
      
x = np.linspace(-1,1,40)          #利用numpy生成一组数据
y = 2*x + 1 
plt.plot(x,y)      #画图
plt.show()         #显示上述所示的图,如果不用这个命令上述图是不会显示的

 运行结果如图示:

栗子2:

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(-1,1,40)
y1 = 2*x + 1
y2 = x**2    #求x 的平方

plt.figure()
plt.plot(x,y1)
plt.figure()
plt.plot(x,y2)
plt.show()

运行结果如下: 

栗子3: 

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(-1,1,40)
y1 = 2*x + 1
y2 = x**2

plt.figure()
plt.plot(x,y1)
plt.figure(num=3,figsize=(6,4))   #可以在图上面看见写的是figure3,而且这次显示的两个图大小不一 样,因为我们进行了设置
plt.plot(x,y2)
plt.plot(x,y1,color='red',linewidth=3.0,linestyle='--') #我们对plot中一些参数做了调整,默认的color是蓝色,线宽是1,直线
plt.show()

栗子4:

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(-1,1,40)
y1 = 2*x + 1
y2 = x**2

plt.figure()
plt.plot(x,y1)
plt.figure(num=3,figsize=(6,4))
plt.plot(x,y2)
plt.plot(x,y1,color='red',linewidth=3.0,linestyle='--')

plt.xlim((-1,2))  #设置x轴的范围
plt.ylim((-1,3))
plt.xlabel('I am X')
plt.ylabel('I am Y')
plt.show()

栗子5: (我们可以注意到上面那个figure3的横坐标分别是-1,-0.5,0,0.5,1的间隔,其实这个也可以换,在栗子5中展示)

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(-1,1,40)
y1 = 2*x + 1
y2 = x**2

plt.figure()
plt.plot(x,y1)
plt.figure(num=3,figsize=(6,4))
plt.plot(x,y2)
plt.plot(x,y1,color='red',linewidth=3.0,linestyle='--')

plt.xlim((-1,2))
plt.ylim((-1,3))
plt.xlabel('I am X')
plt.ylabel('I am Y')

new_ticks = np.linspace(-1,2,9)    #设置新的坐标   
print(new_ticks)
plt.xticks(new_ticks)

plt.show()

稍微对y轴的坐标也变动一下:

再来点花哨的:

再对y轴的  字体做一些改变:

栗子6:(终于对坐标轴动了手) 

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(-1,1,40)
y1 = 2*x + 1
y2 = x**2

plt.figure()
plt.plot(x,y1)
plt.figure(num=3,figsize=(6,4))
plt.plot(x,y2)
plt.plot(x,y1,color='red',linewidth=3.0,linestyle='--')

plt.xlim((-1,2))
plt.ylim((-1,3))
plt.xlabel('I am X')
plt.ylabel('I am Y')

new_ticks = np.linspace(-1,2,9)
print(new_ticks)
plt.xticks(new_ticks)
plt.yticks([-2,-1.8,-1,1.22,3],
          [r'$really\ bad$',r'$bad\  \alpha$',r'$normal$',r'$good$',r'$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))
ax.spines['left'].set_position(('data',0))
              
plt.show()

 加上图例

legend()其实可以有参数

举个栗子

~
l1=plt.plot(x,y2,label='up')
l2=plt.plot(x,y1,color='red',linewidth=3.0,linestyle='--',label='down')
plt.legend(handles=[l1,l2],labels=['aaa','bbb'],loc='best')

~

猜你喜欢

转载自blog.csdn.net/zyr_freedom/article/details/86583421