在pyplot上格式化主要和次要y轴值[重复]

Posted

技术标签:

【中文标题】在pyplot上格式化主要和次要y轴值[重复]【英文标题】:Format primary and secondary y-axis values on pyplot [duplicate] 【发布时间】:2022-01-04 20:58:37 【问题描述】:

我很难用辅助轴格式化绘图。我想更改主要和次要 y 轴上值的字体大小。我尝试了“set_ticks...”或“yticks”的变体,但没有运气。有人可以帮帮我吗?非常感谢

import numpy as np
import matplotlib.pyplot as plt
from matplotlib.ticker import FormatStrFormatter

plt.rcParams["figure.figsize"] = [16, 9]
plt.rcParams["figure.autolayout"] = True

x = [0,1,2,3,4,5,6,7,8,9,10]
y1 = [0,1,2,3,4,5,6,7,8,9,10]
y2 = [1000,900,800,700,600,500,400,300,200,100,0]

fig, ax1 = plt.subplots()

ax2 = ax1.twinx()
ax1.plot(x, y1, 'g-')
ax2.plot(x, y2, 'b-')

ax1.set_xlabel('increment', size=14)

ax1.set_ylabel('series 1', color='g', fontsize=14)
ax2.set_ylabel('series 2', color='b', size=14)

plt.title("This Plot is a Test\n\n", size=18, color='green')
plt.suptitle("\n\nJust a Test", size=18, color='blue')

ax1.yaxis.set_major_formatter(FormatStrFormatter('%.2f'))
ax1.yaxis.set_ticks(y1, size=20)

plt.grid()
plt.show();

【问题讨论】:

ax1.tick_params(axis='y', labelsize=20)ax2.tick_params(axis='y', labelsize=20) 【参考方案1】:

似乎有 many approaches to this(欢迎使用 matplotlib,还请注意某些参数名称的大写字母已过时)。

编辑:我的原始答案似乎重置了数字格式,将其留在下面进行比较。使用ax1.tick_params(axis='y', labelsize=20)

原答案:

我得到的选择是在ax1.yaxis.set_ticks(y1) 之后附加ax1.set_yticklabels(y1, fontsize=20) 行。

如果您删除现有的 set_ticks 行,它会引发警告,但在视觉上结果是相同的。

【讨论】:

完美!非常感谢

以上是关于在pyplot上格式化主要和次要y轴值[重复]的主要内容,如果未能解决你的问题,请参考以下文章

Pyplot绘图的格式

Android 上的 AnyChart:格式化 x 轴值

以百万英镑显示 Y 轴值的最佳方式

如何将货币格式添加到 matplotlib.pyplot.text? [复制]

pyplot 轴中日期时间的格式

识别 yAxis 刻度间隔