Chapter1 基于python的科研论文配图绘制与配色基础

本文内容和图都源自《科研论文配图绘制指南 基于python》,读书笔记。

科研绘图的基础知识

        数据可视化:借助图像展示数据

        为什么非常重要:吸引读者、帮助读者理解自己的研究内容、直观的感受到你的工作成果

绘制规范

           画图最首要的:确保规范性,要符合投稿期刊要求的配图格式

        1 配图的分类与构成

                线型图【折线、散点、柱形图】、灰度图、照片彩图、综合配图

         2 配图的属性

                插图格式

                        像素图:(JPEG 处理容易但损失大、PSD、PNG、TIFF)

                        矢量图:放大不会失真(EPS 常用、AI 常用、PDF、SVG)

                尺寸

                        考虑和上下文的协调性

                         * SCI要求分辨率 > 300pi ,但是分辨率太高文件太大,就不好投稿

                字体和字号

                        中文:宋体 黑体

                        英文:用 Arial、Helvetica 或 Tim

import os import re import matplotlib.pyplot as plt import numpy as np import pandas as pd from collections import Counter import matplotlib.font_manager as fm plt.rcParams['axes.unicode_minus'] = False # 解决负号显示问题 # 查找系统中的中文字体 font_path = None for font in fm.findSystemFonts(): font_name = fm.FontProperties(fname=font).get_name() if "SimHei" in font_name or "Hei" in font_name or "YaHei" in font_name: font_path = font break # 如果找到中文字体,则使用,否则报错 if font_path: my_font = fm.FontProperties(fname=font_path) plt.rcParams['font.sans-serif'] = [my_font.get_name()] else: print("未找到中文字体,可能会导致图表无法正确显示中文") extract_path = "西游记" # 文件夹路径 # 获取TXT文件列表 txt_files = [f for f in os.listdir(extract_path) if f.endswith('.txt')] # 读取所有文本 all_texts = [] for txt_file in txt_files: with open(os.path.join(extract_path, txt_file), "r", encoding="utf-8", errors="ignore") as f: all_texts.append(f.read()) # 合并所有章节文本 full_text = "\n".join(all_texts) chapters = re.split(r"第[一二三四五六七八九十百千]+回", full_text)[1:] # 主要人物 main_characters = ["唐僧", "悟空", "八戒", "沙僧", "妖怪", "神仙"] # 初始化人物出场统计 chapter_counts = {char: [] for char in main_characters} chapter_labels = [f"第{i+1}回" for i in range(len(chapters))] # 统计每个角色在每章节中的出现频率 for chapter in chapters: for char in main_characters: chapter_counts[char].append(chapter.count(char)) # 转换为 Pandas DataFrame df = pd.DataFrame(chapter_counts, index=chapter_labels) x = np.arange(len(df)) y = np.array(df).T fig, ax = plt.subplots(figsize=(12, 6)) ax.stackplot(x, y, labels=main_characters, alpha=0.8) ax.set_title("《西游记》主要人物在各章节的出现频率(河流图)", fontsize=14) ax.set_xlabel("章节", fontsize=12) ax.set_ylabel("出现次数", fontsize=12) ax.legend(loc='upper right', fontsize=10) plt.show() 修改代码绘制主题河流图
最新发布
03-24
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值