Python Matplotlib 是一个用于绘制图形的强大库。可以用于绘制各种类型的图形,包括折线图、柱状图、饼图、散点图等。可以根据具体的需求和数据来进一步自定义图形,Matplotlib 提供了丰富的选项和功能来创建各种类型的图形和可视化。

1、折线图(Line Plot)

绘制折线图(Line Plot)是一项基础且常用的功能。折线图非常适合展示数据随时间或其他连续变量变化的趋势。使用plt.plot() 函数用于在坐标轴上绘制折线图(Line Plot),它提供了多种参数来自定义图像的外观。常用参数如下,

参数

描述

color

设置线条颜色,可以是颜色名称或十六进制代码。

linestyle

设置线条样式,例如 '-', '--', '-.', ':'。

linewidth

设置线条宽度,为浮点数值。

marker

设置数据点标记的样式,如 'o', 's', '^', '+' 等。

markersize

设置标记的大小。

label

设置图例标签,用于 plt.legend()。

使用代码:
import matplotlib.pyplot as plt import numpy as np # 创建数据 x = np.linspace(0, 2 * np.pi, 100) y1 = np.sin(x) # 创建画布 plt.figure() # 绘制一条线(正弦曲线),自定义颜色、线条样式、线条宽度和标记 plt.plot(x, y1, color='blue', linestyle='-', linewidth=2, marker='o', markersize=8, label='sin(x)') # 添加图例 plt.legend() # 添加标题和轴标签 plt.title('cjavapy Line Plot') plt.xlabel('X Axis') plt.ylabel('Y Axis') # 使用 plt.draw() 显示画布 plt.draw() # 显示图表 plt.show()

2、散点图(Scatter Plot)

绘制散点图(Scatter Plot)是一种常用的方法来探索和展示数据集中各个数据点的分布。散点图通常用于比较两个变量之间的关系。使用plt.scatter() 函数用于创建散点图,是数据可视化中常用的一个工具。常用参数如下,

参数

描述

x

散点的 x 坐标。

y

散点的 y 坐标。

s

散点的大小,可以是单个数值或与数据点数量相等的数组。

c

散点的颜色,可以是单个颜色格式的字符串或一系列颜色。

marker

标记的样式,默认为 'o'。

alpha

散点的透明度,介于 0(完全透明)和 1(完全不透明)之间。

linewidths

标记边缘的线宽。

edgecolors

标记边缘的颜色。

label

用于图例的标签。

使用代码:

import matplotlib.pyplot as plt

# 示例数据
x = [5, 7, 8, 7, 2, 17, 2, 9, 4, 11, 12, 9, 6]
y = [99, 86, 87, 88, 100, 86, 103, 87, 94, 78, 77, 85, 86]
sizes = [210, 410, 312, 214, 415, 312, 213, 210, 410, 312, 214, 415, 312]
colors = ['red', 'green', 'blue', 'yellow', 'pink', 'black', 'orange', 'purple', 'beige', 'brown', 'gray', 'cyan', 'magenta']

# 创建散点图
plt.scatter(x, y, s=sizes, c=colors, marker='o', alpha=0.5, linewidths=2, edgecolors='w', label='Data Points')

# 添加图例
plt.legend()

# 添加标题和轴标签
plt.title('cjavapy Scatter Plot')
plt.xlabel('X-axis')
plt.ylabel('Y-axis')

# 使用 plt.draw() 显示画布
plt.draw()
# 显示图表
plt.show()

3、柱状图(Bar Plot)

绘制柱状图(Bar Plot)是一种常见的方式来可视化数据。柱状图适合展示不同类别间的比较。使用plt.bar() 函数是用于创建条形图的常用函数。

常用参数如下,

参数

描述

x

条形的 x 坐标。

height

条形的高度。

width

条形的宽度,默认值为 0.8。

bottom

条形的起始位置 y 坐标,默认为 None。

align

条形的对齐方式,'center' 或 'edge',默认为 'center'。

color

条形的颜色。

edgecolor

条形边缘的颜色。

linewidth

条形边缘的线宽。

tick_label

用作条形标签的标签序列。

label

用于为条形图添加图例的标签。

使用代码:

import matplotlib.pyplot as plt

# 示例数据
categories = ['Category A', 'Category B', 'Category C', 'Category D']
values = [10, 15, 7, 12]

# 创建条形图
plt.bar(x=categories,          # x 坐标
        height=values,         # 条形的高度
        width=0.6,             # 条形的宽度
        bottom=0,              # 条形的起始位置 y 坐标
        align='center',        # 条形的对齐方式
        color='blue',          # 条形的颜色
        edgecolor='black',     # 条形边缘的颜色
        linewidth=1,           # 条形边缘的线宽
        tick_label=categories, # 条形标签
        label='Value')         # 图例标签

# 添加 x 轴和 y 轴标签
plt.xlabel('Categories')
plt.ylabel('Values')

# 添加图表标题
plt.title('cjavapy Bar Chart Example')

# 显示图例
plt.legend(loc='upper right', fontsize='small', title='Trigonometric Functions', frameon=True, shadow=True, ncol=1)

# 使用 plt.draw() 显示画布
plt.draw()

# 显示图表
plt.show()

4、饼图(Pie Chart)

饼图(Pie Chart)是一种常用的图表类型,用于显示数据的相对比例。每个扇区的大小表示该类别的比例。饼图非常适合于展示部分与整体之间的关系。使用plt.pie()函数绘制饼图,常用参数如下,

参数

说明

x

数据数组,数组中的每个元素对应饼图的一个扇区。

labels

为饼图的每个扇区指定的标签。

autopct

用于在扇区内自动添加百分比标签。

例如

'%1.1f%%'会显示带有一位小数的百分比。

colors

用于指定扇区的颜色序列,可以是颜色代码或颜色名称的列表。

startangle

饼图开始的角度,默认从x轴正方向开始,角度按逆时针方向增加。

radius

饼图的半径大小,默认为1。

counterclock

是否按逆时针方向排列扇区。默认为True。

explode

用于“爆炸”扇区,即将某个或某些扇区从中心点突出显示。用于强调部分数据。

shadow

是否给饼图添加阴影效果。默认为False。

wedgeprops

定义扇区边缘的属性,如边缘线的宽度、颜色等。

使用代码:

import matplotlib.pyplot as plt

# 数据准备
sizes = [15, 30, 45, 10]
labels = ['Category A', 'Category B', 'Category C', 'Category D']
colors = ['gold', 'yellowgreen', 'lightcoral', 'lightskyblue']
explode = (0, 0.1, 0, 0)  # 突出显示第二个扇区

# 绘制饼图
plt.pie(sizes, explode=explode, labels=labels, colors=colors, autopct='%1.1f%%', startangle=140, shadow=True)

# 确保饼图是圆形的
plt.axis('equal')

# 添加图表标题
plt.title('cjavapy')

# 使用 plt.draw() 显示画布
plt.draw()

# 显示图表
plt.show()

5、直方图(Histogram)

绘制直方图(Histogram)是一种常用的方法来可视化数据的分布。直方图通过将数据分组到连续的区间或“桶”中,并计数每个桶中的观测次数来工作。使用plt.hist() 函数绘制制直方图。常用参数如下,

参数

说明

x

需要绘制直方图的数据。

通常是一维数组或序列。

bins

指定直方图的bin(箱子)数量或边界。

可以是整数(指定bin数量)

或序列(指定每个bin的边界)。

range

指定要显示的数据范围,

形式为(最小值, 最大值)。

density

若为True

,则直方图显示的是密度而非计数,

即bin的面积总和等于1。

histtype

指定直方图的类型。常见的类型有

'bar'、'barstacked'

、'step'和'stepfilled'。

align

指定bin边缘与刻度线的对齐方式。可选值有

'left'、'mid'、'right'。

orientation

直方图的方向。默认是

'vertical',可设置为'horizontal'

获得水平直方图。

color

指定直方图的颜色。

label

用于直方图的标签,适用于图例的显示。

使用代码:

import matplotlib.pyplot as plt
import numpy as np

# 生成随机数据
data = np.random.normal(0, 1, 1000)  # 生成1000个均值为0,标准差为1的正态分布随机数

# 创建直方图
plt.hist(data, bins=30, range=(-3, 3), density=True, histtype='bar', color='skyblue', edgecolor='black', alpha=0.7, label='Random Data')

# 添加标题和轴标签
plt.title('cjavapy Histogram')
plt.xlabel('Value')
plt.ylabel('Probability Density')

# 显示图例
plt.legend()

# 显示网格
plt.grid(color='gray', linestyle='--', linewidth=0.5)

# 使用 plt.draw() 显示画布
plt.draw()

# 显示图形
plt.show()

推荐文档