Python论文多图绘制+代码+代码解读+绘图经验分享(1)


前言

因为在写论文时,画图一直是一个比较大的问题。很想知道如何才能绘制出和论文一样好看的图像,以下是我学习的内容,也搬运了一些网站和教程在这里,请大家一起分享。

  1. 确认要画的图的类型
    https://blog.csdn.net/u012890505/article/details/103753151
  2. 确认所画的图的排布方式
    https://blog.csdn.net/qq_46110834/article/details/111461809
  3. 对于绘图有一定的审美基础
    最终在绘制好看的论文图时,论文的图形的布局、颜色、线的粗细,都会需要考虑。
  4. 最终的保存
    (1)在保存图像时,可以根据需要将图像保存为不同的格式,例如,如果最终用PPT作图,那么就将图像保存为svg格式的矢量图,这样拉扯1图像使其大小发生变化的时候,图像的质量也可以不会因为拉扯而变得模糊。
    (2)我有很多的实验图,他们可以被插入成为组图。我希望代码可以更具我需要插入的图的个数,灵活排列组图,并且变更大小,且每一个插入的图,都有一个对应的标号,如a,b,c,d.
    (2)在此基础上,每当我们插入新的图形时,都不会改变标号a,b,c,d的大小,这样,我们在论文中的每一幅图的标号都是等大的。
  5. 保存后使得图能够复审
    意味着绘图的代码需要具备足够多的接口,在我们想对图进行微调的时候,能够找到对应的位置进行矫正,而不是每生成一次图,重新更改都需要花很大的功夫去改正。

绘图代码及详细解释

import matplotlib.pyplot as plt
from numpy.random import multivariate_normal
import math

# 使用相对专业的的图形风格
plt.style.use('seaborn-darkgrid')

# 设置显示中文
plt.rcParams['font.sans-serif'] = ['DejaVu Sans']
plt.rcParams['axes.unicode_minus'] = False

def create_subplots(n, data, figure_size=(10,10)):
    '''创建n个子图'''

    # 计算子图的行数和列数
    rows = int(math.sqrt(n))
    cols = n // rows
    cols += n % rows

    # 创建图形和子图
    fig, axs = plt.subplots(rows, cols, figsize=figure_size)

    # 根据子图数量调整子图的位置
    axs = axs.flatten()
    for ax in axs[n:]:
        fig.delaxes(ax)

    for i in range(n):
        axs[i].scatter(data[:, 0], data[:, 1], color='g', linewidth=0.5)
        axs[i].set_title(chr(97+i))  # 使用ASCII值97(a)+ i作为标题

    # 紧致布局
    plt.tight_layout()

    # 保存图形,使用SVG格式和300 dpi的分辨率
    plt.savefig('my_figure.svg', format='svg', dpi=300)

    # 显示图形
    plt.show()

# 生成数据
X = multivariate_normal(mean=[0, 0],
                        cov=[[1, -0.6],
                             [-0.6, 1]],
                        size=200)

# 在10x10的画布上创建9个子图
create_subplots(9, X, figure_size=(10,10))

在这里插入图片描述

  • 5
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值