使用Python库Matplotlib绘制常用图表类型

一、Matplotlib绘图参数设置

1.1 设置分辨率和画布大小

# 分辨率参数-dpi,画布大小参数-figsize
plt.figure(dpi=300,figsize=(24,8))

1.2 保存图片并设置边缘留白为紧凑型

plt.savefig("accuracy.svg", bbox_inches="tight")

1.3 设置坐标轴标签

plt.xlabel("tree_num")
plt.ylabel("accuracy")

1.4 画直线设置线宽和颜色

plt.plot(accuracy, color="b", linewidth="1.6")

1.5 画子图

1.5.1 通过figure的add_subplot()画子图

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
%matplotlib inline
fig=plt.figure()
# 画第1个图:折线图
x=np.arange(1,100)
ax1=fig.add_subplot(221)
ax1.plot(x,x*x)
# 画第2个图:散点图
ax2=fig.add_subplot(222)
ax2.scatter(np.arange(0,10), np.random.rand(10))
# 画第3个图:饼图
ax3=fig.add_subplot(223)
ax3.pie(x=[15,30,45,10],labels=list('ABCD'),autopct='%.0f',explode=[0,0.05,0,0])
# 画第4个图:条形图
ax4=fig.add_subplot(224)
ax4.bar([20,10,30,25,15],[25,15,35,30,20],color='b')
plt.show()

1.5.2 通过plt的subplots画子图

fig, ax = plt.subplots(2, 2,figsize=(10,8))
# 画第1个图:折线图
x = np.arange(1, 100)
ax[0][0].plot(x, x * x)
# 画第2个图:散点图
ax[0][1].scatter(np.arange(0, 10), np.random.rand(10))
# 画第3个图:饼图
ax[1][0].pie(x=[15, 30, 45, 10], labels=list('ABCD'), autopct='%.0f', explode=[0, 0.05, 0, 0])
# 画第4个图:条形图
ax[1][1].bar([20, 10, 30, 25, 15], [25, 15, 35, 30, 20], color='b')
plt.show()

二、使用Matplotlib中scatter()方法画散点图

scatter()方法关键参数:

matplotlib.pyplot.scatter(
    x,  # 散点的坐标
    y,
    s=None, # 散点的面积
    c=None, # 散点的颜色
    marker=None, # 散点样式,默认值为实心圆,'o'
    cmap=None, 
    norm=None,
    vmin=None,
    vmax=None,
    alpha=None, # 散点透明度,[0, 1]之间的数,0表示完全透明,1则表示完全不透明
    linewidths=None, # 散点的边缘线宽
    verts=None,
    edgecolors=None, # 散点的边缘颜色
    hold=None,
    data=None,
    **kwargs,
)

2.1 散点图添加图例和点标签

src_in_graph, tgt_in_graph = self.get_valid_source_and_target_list(source_list, target_list)
Xs, Ys = [], []
Xt, Yt = [], []
for s,t in zip(src_in_graph, tgt_in_graph):
    sx, sy = self.node_dict[s].coord
    tx, ty = self.node_dict[t].coord
    Xs.append(sx)
    Ys.append(sy)
    Xt.append(tx)
    Yt.append(ty)
plt.scatter(Xs, Ys, c='r', label='source')
for i in range(len(src_in_graph)):
    plt.text(Xs[i], Ys[i], src_in_graph[i])
plt.scatter(Xt, Yt, c='b', label='target')
for i in range(len(src_in_graph)):
    plt.text(Xt[i], Yt[i], src_in_graph[i])
plt.legend()
plt.savefig('src-tgt coord.svg', bbox_inches="tight")

2.2 结合sklearn中make_blobs()方法绘制二分类数据

import matplotlib.pyplot as plt
from sklearn import datasets

X, y = datasets.make_blobs(
    n_samples=150, n_features=2, centers=2, cluster_std=2.05, random_state=47
)
y = np.where(y == 0, 0, 1)  # 将标签转换为0和1
plt.scatter(X[:, 0], X[:, 1], c=y)
plt.show()

三、箱线图

箱线图(Box plot),也称为盒须图,是一种用于显示数据分布的统计图表。它通过显示数据的五个统计量(最小值、第一四分位数、中位数、第三四分位数和最大值)来概括数据的分布情况。箱线图在以下情况下特别有用:

  • 显示数据分布情况:箱线图提供了对数据分布的直观概览,包括数据的集中趋势、分散程度和对称性。
  • 识别异常值:箱线图通过“须”的长度和离群点(异常值)显示数据中的异常值或极端值。
  • 比较不同组的数据:箱线图可以并排显示多个数据集,方便比较不同组的分布情况。

箱线图应用场景:

  • 探索性数据分析(EDA):在数据分析的初始阶段,使用箱线图可以帮助快速了解数据的基本特征。
  • 比较多个数据集:当需要比较多个数据集的分布情况时,箱线图非常有用。例如,比较不同实验组或不同时间段的数据。
  • 检测数据异常值:箱线图可以帮助识别数据中的异常值,进而决定是否需要处理这些异常值。
  • 可视化报告:在报告和展示数据时,箱线图提供了一个简洁、直观的方式来展示数据的分布情况。

在画箱型图过程中,如图像未显示,是因为数据中存在空值。

四、双数轴折线图

  • 20
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值