作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在更改双轴绘图上的刻度标签属性时遇到问题。我希望文本很小,并且字体与默认字体不同。在我尝试使用 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)
最佳答案
根据 Tick 类文档,Tick 可以有两个标签( label1
和 label2
):
label
属性总是指
label1
.
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')
关于matplotlib - 在双轴上调整刻度标签大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12890752/
我是一名优秀的程序员,十分优秀!