gpt4 book ai didi

matplotlib - 在双轴上调整刻度标签大小

转载 作者:行者123 更新时间:2023-12-04 19:13:14 25 4
gpt4 key购买 nike

我在更改双轴绘图上的刻度标签属性时遇到问题。我希望文本很小,并且字体与默认字体不同。在我尝试使用 twiny() 之前,我找到了一种工作正常的方法。如图所示,第二个轴不响应刻度格式指令。我是否遗漏了一些重要的东西,或者 matplotlib 中是否存在错误?

Ubuntu 12.04、Python 2.7.3、matplotlib 1.1.1rc

#!/usr/bin/env python
# coding: utf-8

from matplotlib import pyplot as p
from numpy import sin, cos, arange

x = arange(0, 10, .01)

for plotnum in range(1,5):
p.subplot(2, 2, plotnum)
ax1 = p.gca()
p.plot(sin(x),x)
ax2 = p.twiny()
p.plot(cos(x)+plotnum,x, 'g--')

# Set size all tick labels
# Works for first axes (lower x-ticks) and can also change font
for tickset in [ax1.xaxis.get_major_ticks()]:
[(tick.label.set_fontsize(plotnum*4), tick.label.set_fontname('ubuntu mono')) for tick in tickset]

# Does not work for second axes (upper x-ticks)
for tickset in [ax2.xaxis.get_major_ticks()]:
[(tick.label.set_fontsize(plotnum*2), tick.label.set_fontname('ubuntu mono')) for tick in tickset]

# This works, but doesn't allow changing font
#ax2.tick_params(axis='both', which='major', labelsize=plotnum*2)

这是一张图片:

Here the image is

编辑:修正了不正确的刻度线缩进

编辑:插入的图像(Thriveth)

最佳答案

根据 Tick 类文档,Tick 可以有两个标签( label1label2 ):

  • 1 指的是 xticks 的图底部和 yticks 的左侧
  • 2 指的是 xticks 绘图的顶部和 yticks
  • 的右侧
    label属性总是指 label1 .

    您可以通过将 ax2 行更改为以下内容来修复脚本:
    for tickset in [ax2.xaxis.get_major_ticks()]:
    [(tick.label2.set_fontsize(plotnum*2), tick.label2.set_fontname('ubuntu mono'))
    get_majorticklabels如果您需要 label1,函数将起作用或 label2并简化您的脚本:
    from matplotlib import pyplot as p
    from numpy import sin, cos, arange

    x = arange(0, 10, .01)

    for plotnum in range(1,5):
    p.subplot(2, 2, plotnum)
    ax1 = p.gca()
    p.plot(sin(x),x)
    ax2 = p.twiny()
    p.plot(cos(x)+plotnum,x, 'g--')
    for label in ax1.xaxis.get_majorticklabels():
    label.set_fontsize(plotnum * 4)
    label.set_fontname('courier')
    for label in ax2.xaxis.get_majorticklabels():
    label.set_fontsize(plotnum * 4)
    label.set_fontname('verdana')

    请注意,我将标签更改例程放在循环中!
    plotted tick labels

    关于matplotlib - 在双轴上调整刻度标签大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12890752/

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