0

我对 Matplotlib 并不陌生。尽管我不是每天(或每周,甚至每月)都使用它,但我已经用它制作了很多数字。所以我往往会忘记一些基本的东西,例如,如何添加图例,如何添加颜色条,如何自定义颜色图,如何更改图形特定部分的字体,如何制作一些透明效果等等当然,每次我有问题时,我总是可以google它,谷歌很可能会带我去stackoverflow或其他一些类似的网站,或者一些博客文章,我几乎总能得到解决方案。这给我的印象是“官方”文档并没有应有的用处。

但是我肯定是错的,即官方文档一定很有用,否则那些回答问题的人怎么知道解决方案?也许他们是“内部人员”(Matplotlib 的开发者)?

所以我的问题是,如果您不是开发人员(但如果您是开发人员,欢迎您回答这个问题),并且假设您在这里回答了许多与 Matplotlib 相关的问题,您如何在不问 Google 的情况下自己学习这些技术?如果您没有立即想到答案(不是谷歌,因为是您在回答这个问题,而在此之前,答案可能在谷歌中还不存在),您在哪里以及如何寻找?

请注意,我并不是在抱怨文档。我想我只是还没有找到一种有效的方法来利用它。

或者,由于 Matplotlib 的内在复杂性,找到特定请求的解决方案不可避免地并不简单?通过内在的复杂性,我的意思是在 Matplotlib 中,类似的事情通常可以通过许多不同的方式来完成,因此,如果一个人在一开始碰巧选择了一种特定的(并且由于某种原因不常见)方式,然后遇到了一个问题,这个问题的解决方案问题可能没有在手册中明确列出,也许只有那些知道 Matplotlib 真正如何在幕后工作的大师才能提出解决方案。

授人以渔比授人以渔更有帮助。

注意:我今天遇到的具体问题是为图形添加颜色条。在我的例子中,有点“特殊”的地方是主图像是一组多边形,每个多边形的颜色都是单独设置的。所以简单的颜色条功能似乎不起作用,至少不像“matplotlib 颜色条示例”的第一个谷歌结果中所呈现的那样。在这种特定情况下,第二个谷歌结果确实解决了这个问题,但这只是在对第一个谷歌结果进行多次试验后才发现的(并且在用其他关键字搜索后),这有点令人沮丧......顺便说一句,我用

fig = plt.figure(figsize=(10,10))
ax = fig.add_subplot(111, ...)

设置轴框(这是必要的,因为我的多边形必须添加到预先存在的轴框架中),所以我必须使用

ax.xaxis.label.set_fontsize(20)

更改 xaxis 标签的字体大小,这是在经过相当多的谷歌搜索后才发现的。我自己怎么知道 ax 有一个属性xaxisxaxis有一个属性labellabel有一个函数set_fontsize,当它们的名字不像这里那么明显时它们的含义?

4

1 回答 1

1

使用 python 命令行,我通常会尝试使用 Python 来阅读 matplotlib 本身。

假设您的示例:

fig = plt.figure(figsize=(10,10))
ax = fig.add_subplot(111, ...)

问题

怎么自己知道ax有属性xaxis,xaxis有属性label,label有函数set_fontsize

答案

查找dir

for item in dir(ax):
    print item
#or in case i guess there should be a setter for sth. i search:
for item in dir(ax):
    if item.startswith("set_"):
        print item
#or if i search sth. about labels:
for item in dir(ax):
    if "label" in item:
        print item

问题

以及当他们的名字不像这里那么明显时他们的含义

答案

当我发现某事。承诺我读了docstring

print ax.xaxis.label.set_size.__doc__

matplotlib 中的文档字符串通常非常有用,足以解释 setter 和 getter 方法。

如果这没有帮助,我会在文档中查找要搜索的类:

>>>type(ax.xaxis.label)
<class 'matplotlib.text.Text'> 

什么——在这个例子中——会把我带到这里

于 2013-03-09T08:25:03.697 回答