我是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刻度或刻度标签:
我们将非常感谢您提供的任何帮助。感谢。
答案 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())
以下是带有修改代码的结果图:
问题已得到解答。再次感谢。