matplotlib之查缺补漏

大家好,今天来聊聊一些遗漏的matplotlib细节,通过查缺补漏的方式来结束这一版块的学习。以下是今天的学习内容:

1.标签与坐标轴重叠的解决方法

2.给坐标轴添加箭头

3.坐标标签的能见度问题

4.对数坐标轴

5.图中图

6.公式的插入

标签与坐标轴重叠的解决方法

对于这一问题,如果标签是纯数字,那么不必担心,matplotlib会自动隐藏一部分坐标标签数据来达到可观的效果,但是如果标签是文字,那么有时候就可能一团糟,比如…

《matplotlib之查缺补漏》

这样的图简直能把像我这样有强迫症的人逼疯啊!!废话不多说了,开搞!下面给出两种解决方法,仅供参考

方法一:拓宽横轴

《matplotlib之查缺补漏》

方法二:旋转标签

《matplotlib之查缺补漏》

给坐标轴添加箭头

说实话,个人觉得这个没有太大的必要,不过在学习阶段,多琢磨还是好的,首先绘制一个没有箭头的坐标轴。

《matplotlib之查缺补漏》

为了给坐标轴添加箭头,引入mpl_toolkits.axisartist,由名字就可以看出,它就是专攻坐标轴的。

《matplotlib之查缺补漏》

不知道大家能不能看清楚x轴和y轴的箭头的差别,其中一个是实心的箭头,另一个是普通的箭头。

坐标标签的能见度问题

有些图的坐标标签或其他文字等会不可避免地被线条给挡住,遇到这种情况应该如何解决呢?

《matplotlib之查缺补漏》

(ps:脑子有病吧,线条画那么粗干嘛?能吃?)

显然,这是由于线条在数字的上层,所以数字被挡住了,那么我们只要将数字移到线条的上层不就解决问题了吗?其实很简单,把plt.plot(x1,y1,linewidth=15)改为plt.plot(x1,y1,linewidth=15,zorder=1)就行。zorder参数就是用来控制它的层级的。

得到的结果如下:

《matplotlib之查缺补漏》

那么问题又来了,如果我的线条是黑色的呢?比如

《matplotlib之查缺补漏》

这下子你再怎么移上来都没用了吧(除了改变标签的颜色),我们只能换另外一种方法了:先给标签一个白色背景(为了显示标签),然后设置一个透明度(为了显示线条)就可以了。

《matplotlib之查缺补漏》

简单解释以下第7行的[1:5],不知道读者会不会觉得应该是[0:4],如果ax.get_yticklabels()只是图中的标签的话,那么肯定就是[0:4],但其实不是,而是从-1.25到1.25,所以应该是[1:5]。

对数坐标轴

先给大家看一张图

《matplotlib之查缺补漏》

如果不看上面的数据,你能看出B点的纵坐标其实是A点纵坐标的10000倍吗?我想应该看不出吧,出现这种情况的原因就是数据变化太快了,为了解决这一问题,应该使用对数纵坐标来减缓变化。

《matplotlib之查缺补漏》

图中图

对于这一问题,我就不做过多解释了,大家注意百分比就行。下面给个示例吧。

《matplotlib之查缺补漏》

公式的插入

插入公式需要熟悉LaTex语法,这个我也不懂,不过需要用到的时候上网查找就可以了。下面仅给出基本的语法

《matplotlib之查缺补漏》

好了,matplotlib的学习就先告一段落了,接下来的计划是学习seaborn。

《matplotlib之查缺补漏》 python小白联盟

    原文作者:雨路浅歌
    原文地址: https://www.jianshu.com/p/563afd122a89
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞