当Matplotlib遇见SciencePlots

news2024/12/22 2:08:24

分享一个Matplotlib扩展工具SciencePlots,一行代码绘制science、nature、ieee等要求的图形。

安装

  • 安装SciencePlots
# 直接从PyPI安装
pip install SciencePlots
  • 安装latex

如果latex未安装,会报错:RuntimeError: Failed to process string with tex because latex could not be found 。根据电脑系统选择,方法参考:https://github.com/garrettj403/SciencePlots/wiki/FAQ#installing-latex


使用方法

SciencePlots使用方法和matplotlib默认style调用一样,详细参考👉:matplotlib-rcParams及绘图风格(style)设置详解

  • plt.style.use整个图设置
import matplotlib.pyplot as plt
import scienceplots #导入scienceplots

plt.style.use('science') #使用scienceplots中的science主题
  • with plt.style.context临时设置 
with plt.style.context('science') #临时使用scienceplots中的science主题
  • 多个主题联合使用

上面是单个主题设置,也可以多个主题联合使用,

plt.style.use(['science', 'vibrant']) #联合使用science和vibrant主题
  • 更多主题 

可以单个使用,可以多个联合使用,

[['science'], ['science', 'no-latex'], ['science', 'ieee'],
 ['science', 'ieee', 'std-colors'], ['science', 'nature'],
 ['science', 'scatter'], ['science', 'high-vis'],
 ['dark_background', 'science', 'high-vis'], ['science', 'notebook'],
 ['science', 'bright'], ['science', 'vibrant'], ['science', 'muted'],
 ['science', 'retro'], ['science', 'grid'], ['science', 'high-contrast'],
 ['science', 'light'], ['science', 'no-latex', 'cjk-tc-font'],
 ['science', 'no-latex',
  'cjk-sc-font'], ['science', 'no-latex', 'cjk-jp-font'],
 ['science', 'no-latex', 'cjk-kr-font'], ['science', 'russian-font'],
 ['science', 'turkish-font']]

demo

展示部分,

import numpy as np
import matplotlib.pyplot as plt
import scienceplots

#  SciencePlots部分样式列表
styles = [['science', 'grid'], ['science'], ['high-vis'],
          ['science', 'ieee', 'std-colors'], ['science', 'ieee'],
          ['science', 'nature'], ['science', 'vibrant']]

num_styles = len(styles)


# 模拟绘图数据
def model(x, p):
    return x**(2 * p + 1) / (1 + x**(2 * p))
x = np.linspace(0.75, 1.25, 201)

for i, style in enumerate(styles):
    plt.figure(figsize=(6, 6), dpi=200)
    with plt.style.context(style):  #一行代码,临时使用scienceplots一种主题
        ax = plt.gca()
        for p in [10, 15, 20, 30, 50, 100]:
            ax.plot(x, model(x, p), label=p)
        ax.legend(title='Order')
        ax.autoscale(tight=True)
        ax.set_xlabel('Voltage (mV)')
        ax.set_ylabel('Current ($\mu$A)')
        ax.set_title(f'Style: {", ".join(style)}')

plt.tight_layout()
plt.show()

效果很赞,

  • ['science', 'grid']

  • ['science']主题

  • ['high-vis']主题 

  • ['science', 'ieee', 'std-colors']主题

  • ['science', 'ieee']主题

  • ['science', 'nature']主题

  • ['science', 'vibrant'] 主题

进一步学习👇:一行代码science、nature图表!一行代码实现science、nature、ieicon-default.png?t=N7T8https://mp.weixin.qq.com/s?__biz=MzUwOTg0MjczNw==&mid=2247523775&idx=1&sn=e250cb92fbcbac3948bd7c45681d9193&chksm=f90ed9e1ce7950f7f563f132676287ca41b42d9dd9cfcd70331ebfa6eb267824f78c6bd51592&token=413843954&lang=zh_CN#rd

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1885328.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

尚硅谷k8s 2

p54-56 k8s核心实战 service服务发现 Service:将一组 Pods 公开为网络服务的抽象方法。 #暴露Deploy,暴露deploy会出现在svc kubectl expose deployment my-dep --port8000 --target-port80#使用标签检索Pod kubectl get pod -l appmy-depapiVersion: v1 kind: Service metad…

简易电阻、电容和电感测量仪-FPGA

通过VHDL语言编写程序用于设计电阻、电容和电感测量仪,通过使用试验箱进行验证是否设计正确,资料获取到咸🐟:xy591215295250 \\\或者联系wechat 号:comprehensivable 设计并制作--台数字显示的电阻、电容和电感参数测试…

【技术杂谈】如何访问Github | 解决无法连接Github的问题

访问网页的过程 什么是域名?什么是IP地址?- 域名是网站的名称。 - IP地址是服务器在互联网上的逻辑地址。域名往往是固定的,但是IP地址很有可能是会改变的。计算机通过Host文件检查本地缓存是否有域名对应IP地址 Host文件路径 C:\Windows\Sy…

使用API有效率地管理Dynadot域名,为文件夹中的域名设置域名隐形转发

关于Dynadot Dynadot是通过ICANN认证的域名注册商,自2002年成立以来,服务于全球108个国家和地区的客户,为数以万计的客户提供简洁,优惠,安全的域名注册以及管理服务。 Dynadot平台操作教程索引(包括域名邮…

爬虫cookie是什么意思

“爬虫 cookie”指的是网络爬虫在访问网站时所使用的cookie,网络爬虫是一种自动化程序,用于在互联网上收集信息并进行索引,这些信息可以用于搜索引擎、数据分析或其他目的。 本教程操作系统:Windows10系统、Dell G3电脑。 “爬虫…

JAVA-Redis数据结构—跳跃表(Skiplist)【包含Java实现详情代码】

本人详解 作者:王文峰,参加过 CSDN 2020年度博客之星,《Java王大师王天师》 公众号:JAVA开发王大师,专注于天道酬勤的 Java 开发问题中国国学、传统文化和代码爱好者的程序人生,期待你的关注和支持!本人外号:神秘小峯 山峯 转载说明:务必注明来源(注明:作者:王文峰…

掌握智慧校园:资产来源功能解析

在智慧校园的资产管理框架下,资产来源管理是确保资产数据完整性和合规性的重要一环。这一功能通过数字化手段,详尽记录每一项资产从何而来,无论是采购、捐赠、内部调拨,还是自制与改造,均需经过严格记录与追踪&#xf…

vite+vue集成cesium

1、创建项目、选择框架vuejs pnpm create vite demo_cesium 2、进入项目安装依赖 cd demo_cesium pnpm install3、安装cesium及插件 3、pnpm i cesium vite-plugin-cesium 4、修改vite-config.js import { defineConfig } from vite import vue from vitejs/plugin-vue impo…

Go - 7.const 使用指南

目录 一.引言 二.定义 三.实践 1. 常量的分组定义 2.枚举常量 3.常量类型 四.总结 一.引言 在编程中,常量(constant)是指在程序运行期间其值不会改变的变量。常量在代码中有助于提高可读性和维护性,因为它们提供了一个明确…

CentOS 7基于开源项目制作openssh9.8p1 rpm二进制包修复安全漏洞CVE-2024-6387 —— 筑梦之路

2024年7月1日,官方发布openssh 9.8版本,修复了安全漏洞CVE-2024-6387。 此处主要基于开源项目https://github.com/boypt/openssh-rpms.git制作,之前也有写过类似的文章,这里就不再赘述。 CentOS 5/6/7 基于开源项目制作openssh …

代码随想录算法训练营第60天:动态and[1]

代码随想录算法训练营第60天:动态and ‍ 72. 编辑距离 力扣题目链接(opens new window) 给你两个单词 word1 和 word2,请你计算出将 word1 转换成 word2 所使用的最少操作数 。 你可以对一个单词进行如下三种操作: 插入一个字符删除一个…

我使用 GPT-4o 帮我挑西瓜

在 5 月 15 日,OpenAI 旗下的大模型 GPT-4o 已经发布,那时网络上已经传开, 但很多小伙伴始终没有看到 GPT-4o 的体验选项。 在周五的时候,我组建的 ChatGPT 交流群的伙伴已经发现了 GPT-4o 这个选项了,是在没有充值升…

elementUI 年份范围选择器实现

elementUI 不支持年份范围的选择器,依照下面的文章进行修改和完善 el-year-picker; element日期选择范围、选择年份范围_elemet 两个日期 选择的年份范围必须在三年之内-CSDN博客 el-year-picker 组件: 依赖包:moment 属性&…

JavaSE--基础语法--类和对象(第二期)

(一).面向对象的初步认知 1.1什么是面向对象? Java是一门纯面向对象的语言(Object Oriented Program,简称OOP),在面向对象的世界里,一切皆为对象。面向对象是解决问题的一种思想,主要依靠对象…

怎么测试远程服务器能否连通

远程服务器连接测试的方法很多,下面简单介绍下其中两种方法。 ping命令 按WINR快截键,打开“运行”对话框,输入cmd,回车,打开命令提示符。 输入ping IP地址或ping 域名即可,如ping360服务器通不通&#xf…

DB-100撕裂开关 JOSEF约瑟 合金接线端子,轻松接线

一、产品概述 型号:DB-100 主要用途:DB-100撕裂开关主要用于监测皮带输送机在运行过程中是否发生纵向撕裂,一旦发现撕裂情况,立即触发报警或停机,以保护设备和生产线的安全运行。 二、技术特点 检测原理:…

国产跨平台高性能远程控制软件 RayLink,畅享高清流畅远程办公

不管是手机还是电脑,出色的硬件是好用的基础。而其中的软件工具,也是提高效率、减轻负担的好东西。 免费的软件工具众多,当然付费工具也不少。大家可能会觉得正版软件很贵,但国内软件代理商的价格其实很实惠。 本次为大家介绍一…

Tele-FLM:开源多语言大型语言模型技术报告

随着模型规模的不断扩大,如何高效地训练并优化这些拥有超过500亿参数的庞大模型,同时降低试错成本和计算资源消耗,成为了一个亟待解决的问题。北京智源人工智能研究院、中国电信的研究团队及其合作者提出Tele-FLM模型:一个52亿参数…

刷代码随想录有感(123):动态规划——最长连续递增子序列

题干&#xff1a; 代码&#xff1a; class Solution { public:int findLengthOfLCIS(vector<int>& nums) {if(nums.size() < 1)return nums.size();vector<int>dp(nums.size(), 1);int res 0;for(int i 1; i < nums.size(); i){if(nums[i] > nums[…

C# Web控件与数据感应之属性统一设置

目录 关于属性统一设置 准备数据源 范例运行环境 AttributeInducingFieldName 方法 设计与实现 如何根据 ID 查找控件 FindControlEx 方法 调用示例 小结 关于属性统一设置 数据感应也即数据捆绑&#xff0c;是一种动态的&#xff0c;Web控件与数据源之间的交互&…