大家好,我是考100分的小小码 ,祝大家学习进步,加薪顺利呀。今天说一说Python数据可视化利器:Matplotlib库的用法,希望您对编程的造诣更进一步.
数据可视化已经成为了现代数据科学家和工程师的重要工作之一。Matplotlib是一个优秀的数据可视化库,它支持众多的绘图类型,包括线图,散点图,柱状图,等高线图,和复杂的3D图形。Matplotlib库的设计目标是兼容MATLAB语法,这使得它成为科学计算中最受欢迎的绘图库之一。
一、基础绘图
Matplotlib最基础的绘图是线图。下面的代码演示如何使用Matplotlib绘制线图。
import numpy as np
import matplotlib.pyplot as plt
# 生成数据
x = np.linspace(0, 10, 1000)
y = np.sin(x)
# 绘图
plt.plot(x, y, label='sin(x)')
# 显示标签
plt.legend()
# 显示图形
plt.show()
下面是代码的说明:
首先,我们从numpy库导入linspace函数和sin函数,用来生成X轴和Y轴的数据。然后,我们从matplotlib.pyplot库导入pyplot模块,用来绘制图形。接下来,使用plot函数绘制线图。plot函数的第一个参数是X轴数据,第二个参数是Y轴数据。label='sin(x)'
表示为图像标注注释。如果有多个曲线需要绘画,则使用subplot函数,其中第一个参数为nrows,第二个参数为ncols,第三个参数为plot_number,表示在其中的哪一个窗口中进行绘图。
此外,使用legend函数可以显示图例。最后,使用show函数显示图形。运行这个程序,就会看到一幅含有一个正弦函数的线图。
二、2D图形和子图
除了线图,Matplotlib还支持各种2D图形。在Matplotlib中,使用subplot函数可以绘制多个子图。
x = np.linspace(-10, 10, 1000)
y1 = np.sin(x)
y2 = np.cos(x)
y3 = np.tan(x)
# 在一张图中绘制三个子图
plt.subplot(3, 1, 1)
plt.plot(x, y1)
plt.title('sin(x)')
plt.subplot(3, 1, 2)
plt.plot(x, y2)
plt.title('cos(x)')
plt.subplot(3, 1, 3)
plt.plot(x, y3)
plt.title('tan(x)')
plt.show()
上面的代码中,我们生成三个不同的曲线,并使用subplot函数生成了一个显示三个子图的绘图窗口。subplot函数的第一个参数是行数,第二个参数是列数,第三个参数是子图的位置。运行此代码,可以得到如下图像:
![subplot images](https://img-blog.csdn.net/20170214113744336?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZF9kaWdpdGFsbF9yZW1lZGlh/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/q/90)
三、散点图与直方图
另一个流行的二维图形类型是散点图。散点图可以用于表示两个变量之间的相关性。Matplotlib的scatter函数可以用于绘制散点图。
# 构造数据
x = np.random.randn(1000)
y = np.random.randn(1000)
plt.scatter(x, y, c='r', alpha=0.5)
plt.show()
上面的代码使用了Matplotlib的scatter函数绘制散点图。其中x和y都是由随机值填充的向量。color参数设置点的颜色,alpha参数设置透明度。运行此代码,可以得到如下的散点图:
![Scatter plot](https://img-blog.csdn.net/20170214114220051?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZF9kaWdpdGFsbF9yZW1lZGlh/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/q/90)
另外,直方图是最适合描述一组连续性数据的图形。Matplotlib的hist函数可以用于绘制直方图。
# 构造数据
x = np.random.randn(1000)
# 绘图
plt.hist(x, bins=50, color='g')
plt.show()
在上面的代码中,我们使用hist函数绘制直方图。其中,bins参数指定直方图的梯形数量,颜色是可以变化的。该代码将生成如下的直方图。
![Histogram](https://img-blog.csdn.net/20170214114348909?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZF9kaWdpdGFsbF9yZW1lZGlh/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/q/90)
四、3D图形
除了2D图形,Matplotlib库还支持各种3D图形。我们可以使用Axes3D对象来绘制立体图形。下面的代码演示如何使用Matplotlib绘制3D散点图。
from mpl_toolkits.mplot3d import Axes3D
# 生成3D数据
x = np.random.randn(100)
y = np.random.randn(100)
z = np.random.randn(100)
# 绘图
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.scatter(x, y, z, c='b', marker='o')
plt.show()
在上面的代码中,我们使用Axes3D对象创建3D图形,scatter函数用于绘制散点。marker参数指定点的形状,颜色也可以变化。该代码将生成如下的3D散点图。
![3D scatter plot](https://img-blog.csdn.net/20170214114504781?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZF9kaWdpdGFsbF9yZW1lZGlh/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/q/90)
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/21419.html