作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
下面可以独立设置左右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()
`
这是结果图:
我原以为上面代码中的 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 解决它。
关于python - matplotlib pyplot ParasiteAxes 不允许格式化 x 标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74485369/
下面可以独立设置左右y轴的颜色、字体和字号,但是不能设置x轴的字体和字号。它可以设置x轴颜色。我正在使用 ParasiteAxes,因为它们允许我在使用 matplotlib.animation 时以
我是一名优秀的程序员,十分优秀!