一.Matplotlib
1.1 安装matplotlib
pip install matplotlib
1.2 matplotlib使用
matplotlib绘图主要使用plot函数
语法:
matplotlib.pyplot.plot(x,y,format_string,**kwargs)
x: x轴数据
y: y轴数据
format_string: 曲线格式和样式
**kwagrs: 键值参数
(1)入门示例:
# 导入matplotlib.pyplot模块,并用别名plt来引用它
import matplotlib.pyplot as plt
# 定义x和y的数据列表
x = [1, 2, 3, 4, 5]
y = [2, 3, 5, 7, 11]
# 使用plot函数绘制x和y的图形
plt.plot(x, y)
# 设置x轴的标签为'X-axis'
plt.xlabel('X-axis')
# 设置y轴的标签为'Y-axis'
plt.ylabel('Y-axis')
# 设置图形的标题为'My Line Plot'
plt.title('My Line Plot')
# 显示图形
plt.show()
运行结果:
(2)散点图示例:
import matplotlib.pyplot as plt
x = [1, 2, 3, 4, 5]
y = [2, 3, 5, 7, 11]
plt.plot(x, y,'ro')
plt.xlabel('X-axis')
plt.ylabel('Y-axis')
plt.title('My Line Plot')
plt.show()
运行结果:
(3)使用range函数
import matplotlib.pyplot as plt
x = range(1, 10, 2)
y = range(1, 30, 6)
plt.plot(x,y)
plt.show()
运行结果:
(4)描绘Excel表图
data.xlsx中的数据:
示例代码:
import pandas as pd
import matplotlib.pyplot as plt
df = pd.read_excel('Excel/data.xlsx',sheet_name="商品订单")
x = df['订单号']
y = df['数量']
plt.plot(x,y)
plt.show()
运行结果:
(5)绘图颜色设置
color参数:
设置值 | 颜色 |
b | 蓝色 |
g | 绿色 |
r | 红色 |
c | 蓝绿色 |
y | 黄色 |
m | 洋红色 |
w | 白色 |
k | 黑色 |
#FFFFF00 | 十六进制颜色 |
0.5 | 灰度值字符串 |
(6)线条样式
linestyle参数:
设置值 | 样式 |
- | 实线(默认值) |
-- | 双划线 |
-. | 点划线 |
: | 虚线 |
(7)标记样式
marker:
设置值 | 说明 |
. | 点 |
, | 像素 |
o | 实心 |
v | 倒三角 |
^ | 上三角 |
< | 左三角 |
> | 右三角 |
1 | 下花三角 |
2 | 上花三角 |
3 | 左花三角 |
4 | 右花三角 |
s | 实心正方形 |
p | 实心五角星 |
* | 星形 |
h | 竖六边形 |
H | 横六边形 |
+ | 加号 |
X | 叉号 |
d | 小菱形 |
D | 大菱形 |
l | 垂直线 |
(8)解决中文乱码的问题
plt.rcParams['font.sans-serif']=['SimHei']
(9)解决负号不显示的问题
plt.rcParams['axes.unicode_minus']=False
(10)折线图设置刻度
设置x轴的刻度使用xticks()函数设置
设置y轴的刻度使用yticks()函数设置
示例:
import matplotlib.pyplot as plt
# 假设我们有一些数据
x = [1, 2, 3, 4, 5]
y = [10, 20, 15, 30, 25]
plt.plot(x, y) # 画图
# 设置x轴的刻度
plt.xticks([1, 2, 3, 4, 5], ['Jan', 'Feb', 'Mar', 'Apr', 'May']) # 这将把x轴的刻度设置为对应的月份
# 设置y轴的刻度
plt.yticks([10, 20, 30], ['Low', 'Medium', 'High']) # 这将把y轴的刻度设置为对应的等级
plt.show() # 显示图像
运行结果:
(11)设置坐标轴范围
设置x轴的坐标轴范围使用xlim()函数设置
设置y轴的坐标轴范围使用ylim()函数设置
示例:
import matplotlib.pyplot as plt
# 假设我们有一些数据
x = [1, 2, 3, 4, 5]
y = [10, 20, 15, 30, 25]
plt.plot(x, y) # 画图
# 设置x轴的范围
plt.xlim([0, 6]) # 这将把x轴的范围设置为从0到6
# 设置y轴的范围
plt.ylim([0, 35]) # 这将把y轴的范围设置为从0到35
plt.show() # 显示图像
运行结果:
(12)网格线
使用grid()函数
示例:
import matplotlib.pyplot as plt
# 假设我们有一些数据
x = [1, 2, 3, 4, 5]
y = [10, 20, 15, 30, 25]
plt.plot(x, y) # 画图
# 添加网格线
plt.grid(True)
plt.show() # 显示图像
运行结果:
(13)添加文本标签
使用text()函数
示例:
import matplotlib.pyplot as plt
# 假设我们有一些数据
x = [1, 2, 3, 4, 5]
y = [10, 20, 15, 30, 25]
plt.plot(x, y) # 画图
# 在多个位置一次性添加文本标签
plt.text(1.5, 12, 'Label 1', fontsize=12)
plt.text(3.5, 20, 'Label 2', fontsize=12)
plt.text(4.5, 18, 'Label 3', fontsize=12)
plt.show() # 显示图像
运行结果:
(14)设置标题
使用title()函数
示例:
import matplotlib.pyplot as plt
# 假设我们有一些数据
x = [1, 2, 3, 4, 5]
y = [10, 20, 15, 30, 25]
plt.plot(x, y) # 画图
# 添加标题
plt.title('My Title')
plt.show() # 显示图像
运行结果:
(15)图表图例
使用legend()函数
示例:
import matplotlib.pyplot as plt
# 假设我们有一些数据
x = [1, 2, 3, 4, 5]
y1 = [10, 20, 15, 30, 25]
y2 = [12, 22, 17, 32, 27]
# 画两条数据系列
plt.plot(x, y1, label='Series 1')
plt.plot(x, y2, label='Series 2')
# 添加图例
plt.legend()
plt.show() # 显示图像
运行结果:
(16)添加注释
使用annotate添加注释
示例:
import matplotlib.pyplot as plt
# 假设我们有一些数据
x = [1, 2, 3, 4, 5]
y = [10, 20, 15, 30, 25]
plt.plot(x, y) # 画图
# 在坐标(3, 20)处添加注释
plt.annotate('Label', xy=(3, 20), xytext=(4, 21), arrowprops=dict(facecolor='black', shrink=0.05))
plt.show() # 显示图像
这个例子中:
plt.annotate('Label', xy=(3, 20), xytext=(4, 21), arrowprops=dict(facecolor='black', shrink=0.05))
将在坐标(3, 20)处添加一个指向坐标(4, 21)的注释标签"Label"。arrowprops
参数用于自定义箭头的样式,例如颜色和大小。您可以根据需要调整坐标和注释内容。
运行结果:
(17)调整图表与画布边缘间距
使用subplots_adjust函数
示例:
import matplotlib.pyplot as plt
import numpy as np
# 创建数据
x = np.linspace(0, 10, 100)
y1 = np.sin(x)
y2 = np.cos(x)
# 创建子图
fig, ax1 = plt.subplots()
ax1.plot(x, y1)
ax1.set_xlabel('X Axis 1')
ax1.set_ylabel('Y Axis 1')
ax2 = ax1.twinx() # 创建第二个Y轴
ax2.plot(x, y2)
ax2.set_ylabel('Y Axis 2')
# 调整子图间距和边距
plt.subplots_adjust(wspace=0.2, hspace=0.2) # 调整子图之间的水平和垂直间距
plt.subplots_adjust(left=0.1, right=0.9, top=0.9, bottom=0.1) # 调整子图的边距
plt.show()
运行结果:
(18)坐标轴刻度线
使用tick_params设置刻度线是否显示
示例:
import matplotlib.pyplot as plt
# 假设我们有一些数据
x = [1, 2, 3, 4, 5]
y = [10, 20, 15, 30, 25]
plt.plot(x, y) # 画图
# 设置刻度线显示
plt.tick_params(axis='both', which='both', labelbottom=True, labeltop=True, labelleft=True, labelright=True)
plt.show() # 显示图像
运行结果:
in表示向内,out表示向外
使用plt.rcParams['xtick.direction'] = 'in' x轴的刻度线向内显示
使用plt.rcParams['ytick.direction'] = 'in' y轴的刻度线向内显示