yaxis标签没有显示自定义xaxis概率比例python

时间:2017-01-22 23:37:12

标签: python matplotlib

我是C和Matlab的Python新手。我正在创建一个脚本,该脚本生成用于洪水频率分析的对数概率(log yaxis-probability xaxis)图。我使用以下Stackoverflow解决方案进行xaxis概率缩放:

Creating Probability/Frequency Axis Grid (Irregularly Spaced) with Matplotlib

此解决方案适用于xaxis。但是,当我将yaxis缩放为log10时,yaxis标签会消失。这是用于创建绘图的代码; “概率”调用是指使用上述Stackoverflow解决方案进行概率轴缩放:

<div id="navigation">
		<ul class="left">
			<a href="electronics/electronics.html" class="clicker"><li>Electronics</li></a>
			<a href=""><li>Gardening</li></a>
			<a href=""><li>Cooking</li></a>
			<a href=""><li>Art</li></a>
		</ul>
		<ul class="right">
			<a href="" id="about-us"><li>About Us</li></a>
		</ul>
  </div>
	<div class="clear"></div>

这是结果图的样子 - 注意缺少yaxis刻度或刻度标签:
Here is what the resulting figure looks like - note the lack of yaxis ticks or tick labels:

我们将非常感谢您提供的任何帮助。感谢。

1 个答案:

答案 0 :(得分:1)

感谢ImportanceOfBeingErnest。我在建议的链接上找到了一个可行的解决方案:

set ticks with logarithmic scale

代码修改是替换FixedLocator调用,以及上面的调用,调用设置yticks和Formatter。这是原始和修改过的代码

原始代码:

#Adjust the yaxis format
ax.set_yscale('log')    
ax.set_ylim((0.01, 1000))
plt.tick_params(axis='y', which='major')    
ax.yaxis.set_major_locator(FixedLocator([0.1,1,10,100,1000]))

以下是修改后的代码:

#Adjust the yaxis format
ax.set_yscale('log')    
ax.set_ylim((0.01, 1000))  
ax.set_xticklabels(["0.01", "0.1", "1", "10", "100", "1000"])
ax.get_xaxis().set_major_formatter(plt.ticker.ScalarFormatter())

以下是带有修改代码的结果图:

plot with correct yaxis

问题已得到解答。再次感谢。