Python Matplotlib-如何使用rc_context()?

Python Matplotlib-如何使用rc_context()?,python,matplotlib,Python,Matplotlib,在matplotlib文档中,提供了以下“伪示例”,后面是简短的“伪解释”: “a”与“x”以及“c”与“x”绘图将具有来自“screen.rc”的设置,而“b”与“x”绘图将具有来自“print.rc”的设置 对我来说,这是一个“有5个未知数的方程式”:“screen.rc”、“print.rc”、“a”、“b”和“c”。更具体地说:1)文件“screen.rc”“print.rc”是什么?它们在哪里找到?它们是如何创建的?2)变量“a”、“b”和“c”代表什么?它们是如何设置的 这个“例子

在matplotlib文档中,提供了以下“伪示例”,后面是简短的“伪解释”:

“a”与“x”以及“c”与“x”绘图将具有来自“screen.rc”的设置,而“b”与“x”绘图将具有来自“print.rc”的设置


对我来说,这是一个“有5个未知数的方程式”:“screen.rc”、“print.rc”、“a”、“b”和“c”。更具体地说:1)文件“screen.rc”“print.rc”是什么?它们在哪里找到?它们是如何创建的?2)变量“a”、“b”和“c”代表什么?它们是如何设置的

这个“例子”似乎很有名,因为我在十几个不同的地方找到了它的精确副本,包括简短的描述。最有趣的是,没有人,甚至连matplotlib的工作人员自己,愿意解释这些东西是如何实际应用的


是否有人对此示例有具体的信息,或者可以给出一个如何使用
rc_context()
具体的示例?

您展示的示例来自相应方法的文档。这样的方法没有多少空间来详细介绍,所以请不要责怪人们在方法docstring这个不寻常的地方实际提供了这样的示例

有关rc文件、上下文和示例的更详细说明,请参见(教程页面中的第二个教程,不太可能错过)

根据问题中的情况,具体情况是您有一个包含此代码的python文件,此外还有两个文本文件,分别名为
screen.rc
print.rc

.py文件:

import matplotlib as mpl
import matplotlib.pyplot as plt

x = [1,2,3,4]
a = [1,2,4,4]
b = [1,1,2,4]
c = [2,3,3,1]


with mpl.rc_context(fname='screen.rc'):
  plt.plot(x, a)
  with mpl.rc_context(fname='print.rc'):
    plt.plot(x, b)
  plt.plot(x, c)

plt.show()
screen.rc
文件:

lines.linewidth   : 1       ## line width in points
lines.linestyle   : -       ## linestyle 
lines.linewidth   : 5       ## line width in points
lines.linestyle   : :       ## linestyle 
print.rc
文件:

lines.linewidth   : 1       ## line width in points
lines.linestyle   : -       ## linestyle 
lines.linewidth   : 5       ## line width in points
lines.linestyle   : :       ## linestyle 
运行py文件将产生如下输出


蓝线是从
plt.plot(x,a)
创建的。它具有实线样式,宽一点。类似的,绿线,
plt.plot(x,c)
,因为两者都在
screen.rc
上下文中,但不在
print.rc
中。橙色线是从
print.rc
上下文中创建的线。因此,它有一条由5个点组成的线,并带有点。

太好了,@Ernes。非常感谢。因此,.rc文件是使用matplotlib.rcParams[]的配置文件!和“x”、“a”、“b”、“c”都是长度相同的列表,其中x的值为y。(如果他们使用‘y1’、‘y2’和‘y3’,就不会那么混乱了。)。关于指责:我提到的Matplotlib教程,因为Matplotlib.org的所有教程都很有用,但它们非常糟糕。它们实际上是参考资料。必须搜索其他matplotlib参考以查找rexamples。这个例子比帮助更让人困惑,除非有人对matplotlib非常了解,而你似乎是。哦,我必须补充一点:如果他们不能在“教程”页面中提供一个可行的例子,他们最好不要包含任何例子,而是添加一个到一个例子的链接。例如,指向的链接,也是由/matplotlib.org编写的。这种情况应该一直存在。看,这是一个思考或关心的问题,而不是缺少空间或时间。Matplotlib及其文档是开源的,由社区维护。这意味着任何人,包括你,都可以改进它;人们也经常这样做,而且他们没有为此得到报酬。这是很自然的,这主要是由经验稍多的人完成的,所以他们可能会错过一些对初学者来说很重要的东西。请随时提出改进建议。我理解。我很高兴能够按照您的建议做出贡献,但问题是,如果我没有必要的matplotlib知识,我怎么能做到这一点,这正是我最初评论此线程的原因!!这是一个恶性循环!:)我想现在您已经理解了这个问题,您将能够从您的角度告诉文档应该如何处理这个问题。