如何使用matplotlib进行Python数据分析?

摘要:不论是数据挖掘还是数学建模,都免不了数据可视化的问题。对于 Python 来说,matplotlib 是最著名的绘图库,它主要用于二维绘图,当然也可以进行简单的三维绘图。它不但提供了一整套和 Matlab 相似但更为丰富的命令,让我们可以非
不论是数据挖掘还是数学建模,都免不了数据可视化的问题。对于 Python 来说,matplotlib 是最著名的绘图库,它主要用于二维绘图,当然也可以进行简单的三维绘图。它不但提供了一整套和 Matlab 相似但更为丰富的命令,让我们可以非常快捷地用 python 可视化数据。 matplotlib基础 # 安装 pip install matplotlib 两种绘图风格: MATLAB风格: 基本函数是 plot,分别取 x,y 的值,然后取到坐标(x,y)后,对不同的连续点进行连线。 面向对象: 创建一个图形 fig 和一个坐标 ax 。 fig:figure(plt.Figure) 是一个能容纳各种坐标轴,图形,文字和标签的容器。 ax:axes(plt.Axes) 是一个带有刻度和标签的矩形,最终会包含各种可视化元素。 示例: import matplotlib.pyplot as plt import numpy as np # 图形显示风格 plt.style.use('seaborn-whitegrid') # 创建fig和ax fig = plt.figure() ax = plt.axes() x = np.linspace(0,10,100) # 显示sin函数图形 plt.plot(x, np.sin(x)) # 显示cos函数图形 plt.plot(x, np.cos(x)) plt.show() 这就是利用面向对象的方式绘图,在交互模式中可以看到,每画一个图就是产生一个对象,最后再显示出来。 绘图样式 # 调整坐标轴上下限 plt.xlim([xmin, xmax]) plt.ylim([ymin, ymax]) plt.axis([xmin, xmax, ymin, ymax]) # 参数:tight:把图形设置成紧凑模式,不留多余的部分 # equal:图形显示分辨率为1:1 线形图 文字设置 图形标题:plt.title 坐标轴标题:plt.xlabel, plt.ylabel 基础图例:plt.legend 注意:对中文不友好,需要额外方法,尽量使用英文 # 示例 import matplotlib.pyplot as plt import numpy as np x = np.linspace(1, 10, 100) plt.plot(x, np.sin(x)) plt.title('sin-function') plt.xlabel('x-value') plt.ylabel('y-label') plt.show() 图例 通过legend可以设置图例,同时通过参数的调整可以细腻的设置图例的位置、形式等。参数主要包括: loc:图例的位置 frameon:是否带边框 framealpha:颜色透明 shadow:阴影 # 示例 import matplotlib.pyplot as plt import numpy as np x = np.linspace(1, 10, 100) fig, ax = plt.subplots() ax.plot(x, np.sin(x), color='red', label='sin-function') ax.plot(x, np.cos(x), color='blue', label='cos-function') ax.legend(loc='upper right', frameon=True, shadow=True, framealpha=0.2) # 设置图例位置为右上,有边框,有阴影,且透明度为0.2 plt.show() 颜色条 import matplotlib.pyplot as plt import numpy as np x = np.linspace(1, 10, 100) I = np.sin(x) * np.cos(x[:,np.newaxis]) plt.imshow(I) plt.colorbar() plt.show() 散点图 散点图基础 散点图主要以点为主,数据是不连续的数据,通过设置线的型号来完成。型号包括‘o’、‘+’、‘*’、‘1’、‘h’、‘D’等等,具体使用探索一下就好,用不到太多。
阅读全文