Matplotlib画图
- 一、基本函数
- 1. plt.plot
- 2. plt.text
- 3. 设置刻度
- 4. 设置坐标
- 5.设置网格
- 二、绘制折线图
- 三、绘制散点图
- 四、绘制柱状图
- 五、绘制双坐标图
一、基本函数
1. plt.plot
参数 | 功能 | 选项 |
---|
color | 改变折线颜色 | ‘r’,‘g’,‘b’,‘black’,‘gray’ |
marker | 改变数据点的形状 | ‘.’: 小圆点;‘,’: 像素点;‘o’: 实心圆;‘v’: 垂直三角形;‘^’: 正三角形;‘<’: 左三角形;‘>’: 右三角形;‘1’: 向下平行竖线;‘2’: 向上平行竖线;‘3’: 向左平行横线;‘4’: ;右平行横线;‘s’: 正方形;‘p’: 五边形;‘*’: 星号;‘h’: 六边形1;‘H’: 六边形2;‘+’: 加号;‘x’: X号;‘d’: 小菱形;‘D’: 大菱形;’ |
markerfacecolor | 改变数据点的填充色 | |
markeredgecolor | 改变数据点的边缘色 | |
markersize | 改变数据点的大小 | 从0到无穷大的浮点数 |
linestyle | 改变折线样式 | ‘-’: 实线 ;‘–’: 虚线;‘-.’: 点划线;‘:’: 点线;‘’: 无线条,只显示标记;‘None’: 无线条,不显示标记;’ ': 无线条,不显示标记 |
linewidth | 改变折线宽度 | 从0到无穷大的浮点数 |
label | 绘制的线条的标签 | 字符串类型 |
alpha | 线条和标记的透明度 | 从0到1的浮点数 |
aa | 是否开启抗锯齿 | Ture;False |
2. plt.text
参数 | 功能 | 选项 |
---|
s | 标签的符号 | 字符串 |
fontsize | 标签字体大小 | 整数 |
verticalalignment | 垂直对齐方式 | center,top,bottom,baseline |
horizontalalignment | 水平对齐方式 | center, right,left |
rotation | 标签的旋转角度 | 以逆时针计算,取整 |
style | 设置字体的风格 | |
weight | 设置字体的粗细 | |
string | 注释文本内容 | |
color | 注释文本内容的字体颜色 | |
bbox | 给字体添加框 | bbox=dict(facecolor=‘red’, alpha=0.5) 等 |
3. 设置刻度
plt.xticks(np.linspace(0,epochs,11), size = 16, weight=1000)
plt.xticks([])
import matplotlib.pyplot as pltmonths = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
sales = [12000, 15000, 18000, 14000, 16000, 20000, 23000, 21000, 19000, 22000, 25000, 28000]plt.bar(months, sales)
plt.xticks([2, 5, 8, 11], ['Q1', 'Q2', 'Q3', 'Q4'])
plt.xlabel('Month')
plt.ylabel('Sales')
plt.title('Sales by Quarter')
plt.show()
plt.yscale("log")
plt.yticks([0.0001, 0.001, 0.01, 0.1, 1, 10])
4. 设置坐标
plt.xlabel("x",fontdict={'weight' : 1000,'size' : 16})
plt.ylabel("y",fontdict={'weight' : 'normal','size' : 16})
5.设置网格
plt.grid(ls=":",color="gray",alpha=0.5)
二、绘制折线图
import matplotlib.pyplot as plt
import numpy as npx1 = np.array([1, 2, 3, 4])
y1 = np.array([1, 1.5, 2, 2.5])
x2 = x1
y2 = y1 * 1.5plt.plot(x1, y1, '-', marker='o', color='b', linewidth=1, markersize=2, label='A')
plt.plot(x2, y2, '--', marker='^', color='orange',linewidth=1, markersize=2, label='B')for a, b in zip(x1, y1):plt.text(a, b, (a,b), ha='center', va='bottom', color='b')
for a, b in zip(x2, y2):plt.text(a, b, (a,b), ha='center', va='bottom', color='orange')
plt.xlabel('x')
plt.ylabel('y')
plt.xlim(1,4)
plt.legend()
plt.title('result')
plt.show()
三、绘制散点图
import matplotlib.pyplot as plt
x = [1, 2, 3, 4, 5]
y = [2, 4, 6, 8, 10]
plt.scatter(x, y)
for i in range(len(x)):plt.text(x[i], y[i], f'({x[i]}, {y[i]})', ha='center', va='bottom')
plt.title('Scatter Plot with Values')
plt.xlabel('X')
plt.ylabel('Y')
plt.show()
四、绘制柱状图
import matplotlib.pyplot as plt
labels = ['A', 'B', 'C', 'D', 'E']
values = [10, 20, 15, 25, 30]
plt.bar(labels, values)
for i in range(len(labels)):plt.text(labels[i], values[i] + 1, str(values[i]), ha='center')
plt.title('Bar Chart with Values')
plt.xlabel('X')
plt.ylabel('Y')
plt.show()
五、绘制双坐标图
import matplotlib.pyplot as plt
x = [1, 2, 3, 4, 5]
y1 = [10, 20, 30, 40, 50]
y2 = [1, 4, 9, 16, 25]
fig, ax1 = plt.subplots()
line1 = ax1.plot(x, y1, 'g-', label='Y1')
ax1.set_xlabel('X')
ax1.set_ylabel('Y1', color='g')
ax2 = ax1.twinx()
scatter = ax2.scatter(x, y2, c='r', marker='o', label='Y2')
ax2.set_ylabel('Y2', color='r')
for i in range(len(x)):ax2.text(x[i], y2[i]+1, str(y2[i]), ha='center', va='bottom')
handles1, labels1 = ax1.get_legend_handles_labels()
handles2, labels2 = ax2.get_legend_handles_labels()
plt.legend(handles1 + handles2, labels1 + labels2)
plt.title('Double Axis Plot with Values')
plt.show()