2017-06-17 87 views
2

我在看的matplotlib.pyplot.savefig的文件,特别是其dpi说法:Matplotlib的默认默认位置在哪里?

以每英寸点数分辨率。如果None它将默认为matplotlibrc文件中的值savefig.dpi

现在关于matplotlibrc,文件给出了在那里找了四个位置的列表:只有最后一个(由包提供)适用于我,这是对matplotlib.matplotlib_fname()来电,确认。

但是,该包提供的matplotlibrc实际上是由matplotlib提供的the commented out example

我的问题是:

  1. 这是一个文档的错误?如果我们按照文档,这是未定义的行为。
  2. 定义“默认默认值”在哪里?这是另一个文件在某个地方,还是在图书馆内硬编码? (我知道我可以检查matplotlib.rcParams['savefig.dpi']以获得其默认的默认值(这是figure在我的情况),我问在哪里这些默认默认从何而来。)
+0

1。'matplotlibrc'中有一行:“空白行或以注释#符号开头的行被忽略”。所以,如果你想通过'matplotlibrc'定制一些属性,你必须取消它的注释。 2.我相信https://stackoverflow.com/a/23484838/5510499会回答你的问题。 –

+0

我的问题不在于如何将默认值设置为'matplotlib'。 – user1735003

+0

对不起,第一个问题中“this”的含义并不十分清楚。 –

回答

0

的matplotlib默认rcParams在文件rcsetup.py定义。

默认为当前发展版本savefig.dpi

'savefig.dpi': ['figure', validate_dpi], # DPI(目前线1298

其中'figure'意味着应使用该图的dpi的。图DPI默认为

'figure.dpi': [100, validate_float], # DPI(目前排队1277)的值

注然而两件事情:

  1. 这些值的情况下,重写的matplotlib rc文件中指定它们(即,相应的线在rc文件中没有被注释掉)。
  2. 实际值可以使用例如

    import matplotlib.pyplot as plt 
    print(plt.rcParams) 
    

    这些可能已经与默认值不同。作为一个例子,所述Jupyter笔记本设置默认DPI至72:
    enter image description here

关于第一个问题,即使值在matplotlibrc注释掉,它们应该是相同的如在rcsetup.py。所以要么这个值被注释掉了,那么它们仍然默认为rc文件中的值,或者它们没有被注释掉,其中语句也显然是正确的。