Python进阶-Matplotlib绘图(更新中)

课程链接:https://edu.csdn.net/course/detail/10446 ,文章引用了大量课程示例,如有侵权,请联系我删除,谢谢。

【教师】

覃秉丰 

数据科学家

机器学习,深度学习神经网络领域多年开发研究经验,精通算法原理与编程实践。曾完成过多项图像识别,目标识别,语音识别的实际项目,经验丰富。关注深度学习领域各种开源项目,如TensorFlow,Caffe,Torch等。喜欢理论与实践相结合的教学风格,课程编排由浅入深,体系清晰完整。

 

【课程介绍】

Matplotlib是python中非常常用的绘图工具包,可用于查看显示数据分析的结果,查看程序运行流程等等。本课程会讲解到matplotlib中最常用的一些知识点,包括绘制基本图形,散点图,直方图,等高线图,3D图,动态图等等。同时还是涉及到legend图例,标注,多figure,subplot,设置坐标轴等一些内容。

 

【正文】

01. matplotlib其础用法

示例:画出一条直线

# coding: utf-8

# 微信公众号:深度学习与神经网络  
# Github:https://github.com/Qinbf  
# 优酷频道:http://i.youku.com/sdxxqbf  

# In[1]:

import matplotlib.pyplot as plt
import numpy as np


# In[2]:

x = np.linspace(-1,1,100) #从-1到1生成100个点
y = 2*x + 1
plt.plot(x,y)
plt.show()

运行即可得如下图示:

Python进阶-Matplotlib绘图(更新中)_第1张图片

 

02. matplotlib figure图像

示例:图示尺寸大小及线的颜色、粗细控制

# coding: utf-8

# 微信公众号:深度学习与神经网络
# Github:https://github.com/Qinbf
# 优酷频道:http://i.youku.com/sdxxqbf

# In[1]:

import matplotlib.pyplot as plt
import numpy as np


# In[2]:

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

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

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

plt.show()


# In[4]:

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

plt.figure(figsize=(8,5)) #控制图示的尺寸大小
plt.plot(x,y2)

plt.show()


# In[5]:

plt.plot(x,y1,color='red',linewidth=1.0,linestyle='--') #控制虚线颜色,粗细
plt.plot(x,y2,color='blue',linewidth=5.0,linestyle='-') #控制实线颜色,粗细
plt.show()

图形对象函数figure()用法可参见以下链接:
https://www.cnblogs.com/gengyi/p/9388388.html
https://blog.csdn.net/zjyklwg/article/details/79477261

 

03. matplotlib设置坐标轴1

示例:给定坐标轴范围,给坐标轴命名

# coding: utf-8

# In[1]:

import matplotlib.pyplot as plt
import numpy as np

# In[4]:

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

#xy范围
plt.xlim((-1,2))
plt.ylim((-2,3))

#xy描述
plt.xlabel('I AM X')
plt.ylabel('I AM Y')

plt.plot(x,y1,color='red',linewidth=1.0,linestyle='--')
plt.plot(x,y2,color='blue',linewidth=5.0,linestyle='-')
plt.show()

示例:给坐标轴更多的区间

import numpy as np

new_ticks = np.linspace(-2,2,11)
print(new_ticks)

脚本如下:

# coding: utf-8

# In[1]:

import matplotlib.pyplot as plt
import numpy as np

# In[5]:

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

#xy范围
plt.xlim((-1,2))
plt.ylim((-2,3))

#xy描述
plt.xlabel('I AM X')
plt.ylabel('I AM Y')

plt.plot(x,y1,color='red',linewidth=1.0,linestyle='--')
plt.plot(x,y2,color='blue',linewidth=5.0,linestyle='-')

#对坐标轴划分更多的取值区间
new_ticks = np.linspace(-2,2,11)
plt.xticks(new_ticks)
plt.yticks([-1,0,1,2,3],
           ['level1','level2','level3','level4','level5'])
plt.show()

 

04. matplotlib设置坐标轴2

# coding: utf-8

# In[3]:

import matplotlib.pyplot as plt
import numpy as np

# In[10]:

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

#xy范围
plt.xlim((-1,2))
plt.ylim((-2,3))

#xy描述
plt.xlabel('I AM X')
plt.ylabel('I AM Y')

plt.plot(x,y1,color='red',linewidth=1.0,linestyle='--')
plt.plot(x,y2,color='blue',linewidth=5.0,linestyle='-')

new_ticks = np.linspace(-2,2,11)
plt.xticks(new_ticks)
plt.yticks([-1,0,1,2,3],
           ['level1','level2','level3','level4','level5'])

#gca 获取当前轴
ax = plt.gca()
#把右边和上边的边框去掉
ax.spines['right'].set_color('none')
ax.spines['top'].set_color('none')
#把x轴的刻度设置为‘bottom’
#把y轴的刻度设置为‘left’
ax.xaxis.set_ticks_position('bottom')
ax.yaxis.set_ticks_position('left')
#设置bottom对应到0点,设置left对应到0点,即设置x轴, y周在(0, 0)的位置
ax.spines['bottom'].set_position(('data',0))
ax.spines['left'].set_position(('data',0))

plt.show()

 

05. matplotlib legend图例

# coding: utf-8

# 微信公众号:深度学习与神经网络  
# Github:https://github.com/Qinbf  
# 优酷频道:http://i.youku.com/sdxxqbf  

# In[1]:

import matplotlib.pyplot as plt
import numpy as np


# In[3]:

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

#xy范围
plt.xlim((-1,2))
plt.ylim((-2,3))

#xy描述
plt.xlabel('I AM X')
plt.ylabel('I AM Y')

l1, = plt.plot(x,y1,color='red',linewidth=1.0,linestyle='--')
l2, = plt.plot(x,y2,color='blue',linewidth=5.0,linestyle='-')
plt.legend(handles=[l1,l2],labels=['test1','test2'],loc='best')


new_ticks = np.linspace(-2,2,11)
print(new_ticks)

plt.xticks(new_ticks)
plt.yticks([-1,0,1,2,3],
           ['level1','level2','level3','level4','level5'])

plt.show()

 

06. matplotlib标注

# coding: utf-8

# In[1]:

import matplotlib.pyplot as plt
import numpy as np


# In[14]:

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

plt.plot(x,y1,color='red',linewidth=1.0,linestyle='-')

#gca get current axis
ax = plt.gca()
#把右边和上边的边框去掉
ax.spines['right'].set_color('none')
ax.spines['top'].set_color('none')
#把x轴的刻度设置为‘bottom’
#把y轴的刻度设置为‘left’
ax.xaxis.set_ticks_position('bottom')
ax.yaxis.set_ticks_position('left')
#设置bottom对应到0点
#设置left对应到0点
ax.spines['bottom'].set_position(('data',0))
ax.spines['left'].set_position(('data',0))

x0 = 0.5
y0 = 2*x0 + 1
#画点
plt.scatter(x0,y0,s=50,color='b')
#画虚线
plt.plot([x0,x0],[y0,0],'k--',lw=2)

plt.annotate(r'$2x+1=%s$' % y0,xy=(x0,y0),xytext=(+30,-30),textcoords='offset points',fontsize=16,
             arrowprops=dict(arrowstyle='->',connectionstyle='arc3,rad=.2'))

plt.text(-1,2,r'$this\ is\ the\ text$',fontdict={'size':'16','color':'r'})

plt.show()

 

07. matplotlib scatter散点图

 

 

08. matplotlib bar方图

 

 

09. matplotlib contours等高线图

 

 

10. matplotlib 3D图

 

 

11. matplotlib subplot

 

 

12. matplotlib动杰图

 

 

 

你可能感兴趣的:(Python)