【1】初步问题解决
一开始通过cmd,已经安装成功matplotlib,但是依然无法使用,借助以下方法解决正常使用问题。Linux已经安装matplotlib成功但pycharm仍提示No module named ...的解决方法_z1747157448的博客-CSDN博客_安装了matplotlib但是ide里没有Linux已经install matplotlib成功但pycharm仍提示No module named matplotlib的解决方法该方法适用于已经在shell中sudo apt-get install matplotlib(numpy),但在导包时仍然报错No module named 的情况演示该方法适用于已经在shell中sudo apt-get install matplotlib(numpy),但在导包时仍然报错No module named 的情况在使用numpy和matplotlibhttps://blog.csdn.net/z1747157448/article/details/106086416【2】开始初步尝试
import matplotlib.pyplot as plt
import matplotlib as mpl
import numpy as np
fig,ax = plt.subplots() #创建包含axes的figure
ax.plot([1,2,3,4],[1,4,2,3]) #绘制图像
plt.show() #展现图像
通过上述代码,是一步步创建的,显示了fig和ax,适用于多种画图或复杂情况。这种建图模式,也被称为OO模式(objected-oriented style)
通过以下代码,由于没有制定fig和ax,所以借助matplotlib.pyplot,直接创建出上图所示表格。适合单一表格,简单情况。
import matplotlib.pyplot as plt
import matplotlib as mpl
import numpy as np
line = plt.plot([1,2,3,4],[1,4,2,3]) #matplotlib快速创建
plt.show()
【3】两种绘图接口的对比
在了解了Figure的构成之后,通过调用两种方式,开始尝试构图
第一种:借助显示figure和axes,即OO模式
import matplotlib.pyplot as plt
import matplotlib as mpl
import numpy as np
x = np.linspace(0,2,100)
fig,ax = plt.subplots()
ax.plot(x,x,label = 'linear') #线性表示
ax.plot(x,x**2,label = 'quadratic') #平方表示
ax.plot(x,x**3,label = 'cubic') #立方表示
ax.set_xlabel('x label')
ax.set_xlabel('y label')
ax.set_title('Simple plot')
ax.legend() #调整图例位置
plt.show()
其中发现,如果是图例名称改成中文,则兼容性不佳,案例如下
ax.plot(x,x,label = 'linear')
ax.plot(x,x**2,label = 'quadratic')
ax.plot(x,x**3,label = '立方')
第二种:借助pyplot快速创建
import matplotlib.pyplot as plt
import matplotlib as mpl
import numpy as np
x = np.linspace(0,2,100)
plt.plot(x,x,label = 'linear')
plt.plot(x,x**2,label = 'quadratic')
plt.plot(x,x**3,label = 'cubic')
plt.xlabel('x label')
plt.ylabel('y label')
plt.title('Simple plot')
plt.legend()
plt.show()
【4】思考题
1.请思考两种绘图模式的优缺点和各自适合的场景
OO模式:优点在于可以进行特定编辑,逻辑相对清晰,每一个元素可以进行快速且针对性强的修改操作,子图数量多时操作方便;缺点在于语句数量相对较多,对于每一个子图的内容需要有清晰的规划,创建的难度相对较高。OO模式适合多图共同展示,多子图协同作业时的场景
plt自动创建:优点在于操作方便,能快速简历图像,语句数量少;缺点在于多子图协同较差,仅能展现单一图像。plt自动创建适用单图展示场景,简单化场景构建。
2.在第五节绘图模板中我们是以OO模式作为例子展示的,请思考并写一个pyplot绘图模式的简单模板
import matplotlib.pyplot as plt
import matplotlib as mpl
import numpy as np
#step 1 准备阶段
x = np.linspace(0,2,100)
y = x ** 2
#step 2 设置绘图样式
mpl.rc('lines',linewidth = 4,linestyle = '-.')
#step 3 定义布局
fig,ax = plt.subplots()
#step 4 绘制图像
ax.plot(x,y,label = 'linear')
#step 5 添加标签,文字和图例
ax.set_xlabel('x label')
ax.set_ylabel('y label')
ax.set_title('Simple Plot')
ax.legend()
plt.show()
【5】本次收获
1.本次主要了解了axes和pyplot方法的使用,通过学习两种接口的绘图模式。内容不多,主要分清二者的区别和内容,属于简单但重要的基础。
2.这次学习也明白了matplotlib对于中文的兼容性不佳,在图例中无法很好的显示中文。