预备知识
matplotlib是一个Python 2D绘图库,它可以在各种平台上以各种硬拷贝格式和交互式环境生成出具有出版品质的图形。 Matplotlib可用于Python脚本,Python和IPython shell,Jupyter笔记本,Web应用程序服务器和四个图形用户界面工具包。
Matplotlib试图让简单的事情变得更简单,让无法实现的事情变得可能实现。 只需几行代码即可生成绘图,直方图,功率谱,条形图,错误图,散点图等。为了简单绘图,pyplot模块提供了类似于MATLAB的界面,特别是与IPython结合使用时。 对于高级用户,您可以通过面向对象的界面或MATLAB用户熟悉的一组函数完全控制线条样式,字体属性,轴属性等。
1.调试下列程序,分析运行结果。理解添加和选择子图。
import matplotlib.pyplot as plt
import numpy as np
flg=plt.figure()
flg.add_subplot(2,2,1)
flg.add_subplot(2,2,2)
flg.add_subplot(2,2,3)
flg.add_subplot(2,2,4)
random_arr=np.random.randn(100)
plt.plot(random_arr)
plt.show()
2.调试下列程序,分析运行结果。理解如何给图形添加标签。
import matplotlib.pyplot as plt
import numpy as np
data=np.arange(0,1.1,0.01)
plt.title("Title")
plt.xlabel("x")
plt.ylabel("y")
plt.xticks([0,0.5,1])
plt.yticks([0,0.5,1.0])
plt.plot(data,data**2)
plt.plot(data,data**3)
plt.legend(["y=x^2","y=x^3"])
plt.show()
- 调试下列程序,分析运行结果。
(1)散点图
import matplotlib.pyplot as plt
import numpy as np
x=np.arange(51)
y=np.random.rand(51)*10
plt.scatter(x,y)
plt.show()
(2)柱状图
import matplotlib.pyplot as plt
import numpy as np
x=np.arange(5)
y1,y2=np.random.randint(1,31,size=(2,5))
width=0.25
ax=plt.subplot(1,1,1)
ax.bar(x,y1,width,color='r')
ax.bar(x+width,y2,width,color='g')
ax.set_xticks(x+width)
ax.set_xticklabels(['Jan','Feb','Mar','Apr','May'])
plt.show()
使用matplotlib 绘制图形
# matplotlib 绘制图形
import numpy as np
from matplotlib import pyplot as plt
#import matplotlib.pyplot as plt
'''实例中,np.arange()函数创建x轴上的值。
y轴上的对应值存储在另一个数组对象 y 中。
这些值使用 matplotlib 软件包的 pyplot 子模块的 plot() 函数绘制。
图形由 show() 函数显示。'''
x = np.arange(1,11)
y = 2 * x + 5
plt.title("Matplotlib demo")
plt.xlabel("x axis caption")
plt.ylabel("y axis caption")
plt.plot(x,y,color="r",linewidth=1.0, linestyle='--')
plt.show()
subplot():允许在同一图中绘制不同的东西
```python
# subplot():允许在同一图中绘制不同的东西
import numpy as np
import matplotlib.pyplot as plt
# 计算正弦和余弦曲线上的点的 x 和 y 坐标
x = np.arange(0, 3 * np.pi, 0.1)
y_sin = np.sin(x)
y_cos = np.cos(x)
# 建立 subplot 网格,高为 2,宽为 1
plt.subplot(2, 1, 1) # 激活第一个 subplot
plt.plot(x, y_sin) # 绘制第一个图像
plt.title('Sine')
plt.subplot(2, 1, 2) # 将第二个 subplot 激活,并绘制第二个图像
plt.plot(x, y_cos)
plt.title('Cosine')
plt.show() # 展示图像
bar(): pyplot 子模块提供 bar() 函数来生成体条形图
b
ar(): pyplot 子模块提供 bar() 函数来生成体条形图
from matplotlib import pyplot as plt
x = [5,8,10]
y = [12,16,6]
x2 = [6,9,11]
y2 = [6,15,7]
plt.bar(x, y, align = 'center')
plt.bar(x2, y2, color = 'g', align = 'center')
plt.title('Bar graph')
plt.ylabel('Y axis')
plt.xlabel('X axis')
plt.show()
import matplotlib.pyplot as plt
import numpy as np
x=np.arange(51)
y=np.random.rand(51)*10
plt.scatter(x,y)
plt.show()