gpt4 book ai didi

python - matplotlib pyplot ParasiteAxes 不允许格式化 x 标签

转载 作者:行者123 更新时间:2023-12-05 05:30:59 34 4
gpt4 key购买 nike

下面可以独立设置左右y轴的颜色、字体和字号,但是不能设置x轴的字体和字号。它可以设置x轴颜色。我正在使用 ParasiteAxes,因为它们允许我在使用 matplotlib.animation 时以其他方式修改绘图格式。目标是能够为每个轴标签设置不同的字体、字体大小和颜色,并且这些标签应该独立于刻度标签(至少是大小)。`

from mpl_toolkits.axisartist.parasite_axes import HostAxes, ParasiteAxes
import matplotlib.pyplot as plt

plt.rcParams.update({'font.size': 16})
plt.rcParams.update({'font.weight': 'normal'})
plt.rcParams.update({'font.family': 'times new roman'})

x = [0, 1, 2]
y1 = [0, 1, 2]
y2 = [1, 2, 3]

fig = plt.figure(figsize=(8, 4.5))

host = fig.add_axes([0.10, 0.1, 0.60, 0.85], axes_class=HostAxes)
host.set_xlim(0, 2)
host.axis["right"].set_visible(False)
host.axis["left"].set_visible(False)

host.set_xlabel('X Axis', fontsize=24, fontfamily='courier new', color='tab:green')

y1_color = 'tab:red'
y1_axis = ParasiteAxes(host, sharex=host)
host.parasites.append(y1_axis)
y1_axis.axis['y1'] = y1_axis.new_fixed_axis(loc='left', offset=(0, 0))
y1_axis.set_ylim(0, 4)
y1_axis.set_ylabel('Y1 Axis')
y1_axis.axis['y1'].label.set(fontsize=12, color=y1_color, fontfamily='courier new')
y1_line, = y1_axis.plot([], [], lw=2, color=y1_color)
y1_line.set_data(x, y1)

y2_color = 'tab:blue'
y2_axis = ParasiteAxes(host, sharex=host)
host.parasites.append(y2_axis)
y2_axis.axis['y2'] = y2_axis.new_fixed_axis(loc='right', offset=(0, 0))
y2_axis.set_ylim(0, 4)
y2_axis.set_ylabel('y2 Axis')
y2_axis.axis['y2'].label.set(fontsize=24, color=y2_color, fontfamily='arial')
y2_line, = y2_axis.plot([], [], lw=2, color=y2_color)
y2_line.set_data(x, y2)

plt.show()

`

这是结果图:

pyplot output with undesired x-label font and font size

我原以为上面代码中的 x 轴标签是绿色 24 点 Courier New,但在图中它出现在绿色 16 点 Times New Roman(除颜色外在 rcParams 上拍摄。如果rcParams 被修改,然后 ticklabels 被修改,我想保持独立于 x 轴标签。我希望有一个解决方案,并解释为什么两个轴对象的行为不同。

最佳答案

我无法解释为什么您当前设置 xlabel 属性的方式不起作用,但它看起来像在使用

host.set_xlabel('X Axis')
host.axis["bottom"].label.set(fontsize=24, fontfamily='courier new', color='tab:green')

而不是 host.set_xlabel('X Axis', fontsize=24, fontfamily='courier new', color='tab:green') 使用 matplotlib 3.6.2 解决它。

enter image description here

关于python - matplotlib pyplot ParasiteAxes 不允许格式化 x 标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74485369/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com