Python数据可视化:Matplotlib入门指南
Matplotlib介绍:
Matplotlib 是 Python 的绘图库,它能让使用者很轻松地将数据图形化,并且提供多样化的输出格式。
Matplotlib 可以用来绘制各种静态,动态,交互式的图表。比如说散点图、柱状图等等。
Matplotlib库核心概念
1.** 图(Figure):整个绘图区域,相当于一个画布,可以包含多个子图(Axes)。
2. 子图(Axes):图中的一个绘图区域,一个 Figure 可以有多个 Axes(比如分屏显示多个图表)。
3. 坐标轴(Axis):每个 Axes 包含 x 轴和 y 轴,负责控制刻度、标签等。
4. 绘图元素 **:如线条、点、文本、图例等,是构成图表的具体内容。
基本使用流程
- 导入 Matplotlib(通常使用
plt作为别名)。 - 创建图(Figure)和子图(Axes)。
- 调用绘图函数(如
plot()、scatter()等)绘制图表。 - 添加标签、标题、图例等装饰元素。
- 显示或保存图表。
Matplotlib的安装:
1.pip install matplotlib
2.conda install matplotlib
(清华源:https://pypi.tuna.tsinghua.edu.cn/simple)
Matplotlib的导入:
import matplotlib.pyplot as plt
plot() 函数的基本用法
plot() 是数据可视化中常用的绘图函数,支持绘制点、线、曲线等图形。
语法示例:
import matplotlib.pyplot as plt
plt.plot(x, y, format_string, **kwargs)
- x, y:数据点的横纵坐标(可省略x,默认生成0-N的序列)。
- format_string:控制线条样式(颜色、线型、标记),如
'ro--'表示红色圆点虚线。 - kwargs:可选参数,如
linewidth(线宽)、label(图例标签)。
绘制简单线图
import matplotlib.pyplot as plt
x = [1, 2, 3, 4]
y = [2, 4, 1, 5]
plt.plot(x, y, 'b-', linewidth=2) # 蓝色实线,线宽2
plt.title("Simple Line Plot")
plt.xlabel("X-axis")
plt.ylabel("Y-axis")
plt.show()
绘制散点图
通过设置标记样式(如 'o')和取消线型(linestyle='none')实现:
plt.plot(x, y, 'ro', linestyle='none', label='Points') # 红色圆点
plt.legend()
plt.show()
多组数据绘制
叠加多个 plot() 调用可绘制多组数据:
y2 = [1, 3, 2, 4]
plt.plot(x, y, 'b-', label='Line 1')
plt.plot(x, y2, 'g--', label='Line 2')
plt.legend()
plt.show()
参数说明
- 颜色:
'b'(蓝)、'g'(绿)、'r'(红)等。 - 线型:
'-'(实线)、'--'(虚线)、':'(点线)。 - 标记:
'o'(圆点)、's'(方块)、'^'(三角形)。
通过调整参数可灵活实现多种图表效果。
fmt 参数格式说明
fmt 参数用于定义绘图中的基本样式,包括标记(marker)、线条(line)和颜色(color)。其标准格式为:
fmt = '[marker][line][color]'
组成部分详解
标记(marker)
控制数据点的显示样式,常用选项包括:
.:点o:圆圈s:正方形^:三角形*:星号
线条(line)
定义连接数据点的线条样式:
-:实线--:虚线::点线-.:点划线
颜色(color)
指定标记和线条的颜色,支持单字母缩写:
b:蓝色g:绿色r:红色c:青色m:洋红色y:黄色k:黑色w:白色
使用示例
'o:r' 表示圆圈标记、点线、红色线条's--b' 表示正方形标记、虚线、蓝色线条'*g' 仅显示绿色星号标记(无连线)
Matplotlib 网格线
grid():来设置图表中的网格线。grid() 方法语法格式如下:
matplotlib.pyplot.grid(b=None, which='major', axis='both', )
import numpy as np
import matplotlib.pyplot as plt
x = np.array([1, 2, 3, 4])
y = np.array([1, 4, 9, 16])
plt.title('TITLE')
plt.xlabel("x - label")
plt.ylabel("y - label")
plt.plot(x,y)
plt.grid()
plt.show()
设置x轴方向显示网格线:
import numpy as np
import matplotlib.pyplot as plt
x = np.array([1, 2, 3, 4])
y = np.array([1, 4, 9, 16])
plt.title('TITLE')
plt.xlabel("x - label")
plt.ylabel("y - label")
plt.plot(x,y)
plt.grid(axis='x')
plt.show()
网格线换色实例:
import numpy as np
import matplotlib.pyplot as plt
x = np.array([1, 2, 3, 4])
y = np.array([1, 4, 9, 16])
plt.title('TITLE')
plt.xlabel("x - label")
plt.ylabel("y - label")
plt.plot(x,y)
plt.grid(color='r', linestyle='--', linewidth=0.5)
plt.show()
subplot():
用于绘制多个子图,在绘图时需要指定位置。subplot(nrows, ncols, index)
import matplotlib.pyplot as plt
import numpy as np
xpoints = np.array([0, 6])
ypoints = np.array([0, 100])
plt.subplot(1, 2, 1)
plt.plot(xpoints, ypoints)
plt.title("plot 1")
x = np.array([1, 2, 3, 4])
y = np.array([1, 4, 9, 16])
plt.subplot(1, 2, 2)
plt.plot(x, y)
plt.title("plot 2")
plt.suptitle("TITLE")
plt.show()
scatter():绘制散点图
import matplotlib.pyplot as plt
import numpy as np
x = np.array([1, 2, 3, 4, 5, 6, 7, 8])
y = np.array([1, 4, 9, 16, 7, 11, 23, 18])
plt.scatter(x, y)
plt.show()
更多推荐
所有评论(0)