matplotlib legend写tex公式且控制字体

2023-11-20 13:50

本文主要是介绍matplotlib legend写tex公式且控制字体,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

[1] 解决了 title 用 tex 和 x、y 轴 label 字体用 Times New Roman 的问题,但 legend 的 prop 参数中 能设 usetex(即 legend 似乎不能像 [1] 中 title 那样单独启用 usetex)。参考 [3],matplotlib 其实不启用 usetex 也可以用 mathtext 写 tex 公式,但字体要调一下。

这里记录一种组合解决方案,使 legend 中的 mathtext 达到类似 [1] 中 title 的效果。用到两个设置的组合:

  • matplotlib.rcParams['mathtext.default'] = 'regular',使 mathtext 字体同非 mathtext 字体,本文即 Times New Roman;
  • 传给 legend 的 prop 参数的 dict 中,用 'style': 'italic' 使字变斜;

Rendering

legend.png

Code

  • 对照 [1]
import os
import numpy as np
import matplotlib
matplotlib.use("Agg")
matplotlib.rcParams['font.family'] = 'Times New Roman'
# 使字体同非 mathtext 字的字体,此处即 Times New Roman
matplotlib.rcParams['mathtext.default'] = 'regular'
import matplotlib.pyplot as plt
from matplotlib.pyplot import MultipleLocatorY = [0.6819, 0.7017, 0.7049, 0.7228, 0.7198, 0.7272, 0.7256, 0.731]
X = list(range(len(Y)))font_title = {'family': 'Times New Roman','weight': 'normal','size': 30,# 'style': 'italic''usetex' : True,  # title 可以单独启用 usetex
}font_legend = {'family': 'Times New Roman','weight': 'normal','size': 20,'style': 'italic'  # 使字变斜# 'usetex' : True,  # legend 无得设 `usetex` 这项
}fig = plt.figure()
plt.plot(X, Y, marker="o", clip_on=False,label=r"$T\rightarrow I$")  # legend 亦画箭头plt.xlim((X[0], X[-1]))
plt.ylim((min(Y), max(Y)))
plt.title("$I\\rightarrow T$", font_title)  # title 设置
plt.xlabel("# Tom", fontsize=30)
plt.ylabel("Jerry", fontsize=30)
plt.grid()plt.legend(loc="best", prop=font_legend)  # legend 设置ax = plt.gca()grid_margin = MultipleLocator(0.05)
# ax.xaxis.set_major_locator(grid_margin)
ax.yaxis.set_major_locator(grid_margin)
ax.set_aspect(0.5 / ax.get_data_ratio(), adjustable='box')for tick in ax.xaxis.get_major_ticks():tick.label.set_fontsize(20)
for tick in ax.yaxis.get_major_ticks():tick.label.set_fontsize(20)
plt.tight_layout()fig.savefig('legend.png', bbox_inches='tight', pad_inches=0.05)
plt.close(fig)

References

  1. matplotlib的text.usetex会影响字体
  2. Writing mathematical expressions
  3. How do I write a Latex formula in the legend of a plot using Matplotlib inside a .py file?

这篇关于matplotlib legend写tex公式且控制字体的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/395069

相关文章

CSS3中的字体及相关属性详解

《CSS3中的字体及相关属性详解》:本文主要介绍了CSS3中的字体及相关属性,详细内容请阅读本文,希望能对你有所帮助... 字体网页字体的三个来源:用户机器上安装的字体,放心使用。保存在第三方网站上的字体,例如Typekit和Google,可以link标签链接到你的页面上。保存在你自己Web服务器上的字

Python远程控制MySQL的完整指南

《Python远程控制MySQL的完整指南》MySQL是最流行的关系型数据库之一,Python通过多种方式可以与MySQL进行交互,下面小编就为大家详细介绍一下Python操作MySQL的常用方法和最... 目录1. 准备工作2. 连接mysql数据库使用mysql-connector使用PyMySQL3.

如何搭建并配置HTTPD文件服务及访问权限控制

《如何搭建并配置HTTPD文件服务及访问权限控制》:本文主要介绍如何搭建并配置HTTPD文件服务及访问权限控制的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、安装HTTPD服务二、HTTPD服务目录结构三、配置修改四、服务启动五、基于用户访问权限控制六、

使用Python和Matplotlib实现可视化字体轮廓(从路径数据到矢量图形)

《使用Python和Matplotlib实现可视化字体轮廓(从路径数据到矢量图形)》字体设计和矢量图形处理是编程中一个有趣且实用的领域,通过Python的matplotlib库,我们可以轻松将字体轮廓... 目录背景知识字体轮廓的表示实现步骤1. 安装依赖库2. 准备数据3. 解析路径指令4. 绘制图形关键

Python中OpenCV与Matplotlib的图像操作入门指南

《Python中OpenCV与Matplotlib的图像操作入门指南》:本文主要介绍Python中OpenCV与Matplotlib的图像操作指南,本文通过实例代码给大家介绍的非常详细,对大家的学... 目录一、环境准备二、图像的基本操作1. 图像读取、显示与保存 使用OpenCV操作2. 像素级操作3.

8种快速易用的Python Matplotlib数据可视化方法汇总(附源码)

《8种快速易用的PythonMatplotlib数据可视化方法汇总(附源码)》你是否曾经面对一堆复杂的数据,却不知道如何让它们变得直观易懂?别慌,Python的Matplotlib库是你数据可视化的... 目录引言1. 折线图(Line Plot)——趋势分析2. 柱状图(Bar Chart)——对比分析3

MySQL精准控制Binlog日志数量的三种方案

《MySQL精准控制Binlog日志数量的三种方案》作为数据库管理员,你是否经常为服务器磁盘爆满而抓狂?Binlog就像数据库的“黑匣子”,默默记录着每一次数据变动,但若放任不管,几天内这些日志文件就... 目录 一招修改配置文件:永久生效的控制术1.定位my.cnf文件2.添加核心参数不重启热更新:高手应

使用Python开发Markdown兼容公式格式转换工具

《使用Python开发Markdown兼容公式格式转换工具》在技术写作中我们经常遇到公式格式问题,例如MathML无法显示,LaTeX格式错乱等,所以本文我们将使用Python开发Markdown兼容... 目录一、工具背景二、环境配置(Windows 10/11)1. 创建conda环境2. 获取XSLT

Python使用Matplotlib绘制3D曲面图详解

《Python使用Matplotlib绘制3D曲面图详解》:本文主要介绍Python使用Matplotlib绘制3D曲面图,在Python中,使用Matplotlib库绘制3D曲面图可以通过mpl... 目录准备工作绘制简单的 3D 曲面图绘制 3D 曲面图添加线框和透明度控制图形视角Matplotlib

SpringBoot请求参数接收控制指南分享

《SpringBoot请求参数接收控制指南分享》:本文主要介绍SpringBoot请求参数接收控制指南,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Spring Boot 请求参数接收控制指南1. 概述2. 有注解时参数接收方式对比3. 无注解时接收参数默认位置