小编Zau*_*aus的帖子

matplotlib xkcd 和黑色图形背景

matplotlib我正在尝试使用'sxkcd包在黑色背景下绘制一个图。然而,xkcd似乎在文本和线条周围添加了一种白色轮廓线。在白色背景上你看不到这个白框,但在黑色背景上它真的很烦人。

有谁知道如何解决这个问题?也许可以选择如何更改白色轮廓线以具有背景颜色?

最小的例子:

import numpy as np
import matplotlib.pyplot as plt

plt.style.use(['dark_background'])
plt.xkcd()
plt.rcParams['figure.facecolor'] = 'black'

x = np.linspace(-5, 5)

plt.figure()
plt.plot(x, x**2)
plt.text(0, 10, "Text", color='r', fontsize=20)
plt.xlabel("$x$"   )
plt.ylabel("$f(x)$")
plt.show();
Run Code Online (Sandbox Code Playgroud)

黑色背景 xkcd 的最小示例:

编辑:我Python 3.5.4在我的 jupyter 笔记本中使用包:

  • matplotlib==2.2.2,后端='TkAgg'
  • jupyter==1.0.0
  • notebook==5.5.0

请注意,当将上述代码作为脚本运行时,我根本没有得到 xkcd 图。仅从 jupyter 笔记本或命令行我才能得到所描述的行为。

python matplotlib

7
推荐指数
1
解决办法
818
查看次数

如何使用乳胶获取 matplotlib 标签(图例或 xlabel 等)中的前导空格?

我想在打开乳胶的情况下在一些图例标签中插入一些前导空格(问题与其他类型的标签相同)。但是,我输入的任何前导空格都将被忽略(请参阅 MWE 和下图)。一个丑陋的解决方法是输入领先.受此问答启发)。但这并不漂亮。

知道我怎样才能让它正常工作吗?它甚至可以完成吗?或者我应该考虑提出 matplotlib 的问题吗?

微量元素:

import matplotlib.pyplot as plt
plt.rcParams['font.family'] = 'serif'
plt.rcParams['text.usetex'] = True
plt.rcParams['mathtext.fontset'] = 'cm'

fig = plt.figure(figsize=(4, 3))
plt.plot([], label="~ tilde")
plt.plot([], label="\, comma")
plt.plot([], label="\quad quad")
plt.plot([], label="\hphantom{whitespace} hphantom")
plt.plot([], label=".\hphantom{whitespace} ugly leading dot")
plt.xlabel("\hphantom{whitespace} xlabel")
plt.legend()
Run Code Online (Sandbox Code Playgroud)

使用 Latex 在 matplotlib 图例中引导空白

python latex matplotlib legend

6
推荐指数
0
解决办法
1027
查看次数

如何在matplotlib图例中放置多个色图补丁?

当前情况:

我有多组线,其中同一组中的线会根据某些特定于组的参数而变化。我根据此参数为同一组内的每行分配一种颜色表中的颜色,并对每个组使用不同的颜色表。

现在,我想在图上添加图例,每组线有一个条目。 stackoverflow问题:如何在matplotlib图例中放置多个颜色图补丁?

仅适用于组线的解决方案:

如果我只有一组线,则最好的标注方法是按照答案的建议添加色条Matplotlib:将色条添加到不可映射的对象

如何最好地对多组线执行此操作?

因为我有多组这样的线,所以我不想为每个新参数添加一个颜色条。相反,我宁愿在图例中放置填充有对应色图的色块(作为一种迷你色条)。

最小的工作示例:

在下面的内容中,您可以找到当前情况的最小工作示例。但是请注意,我在很大程度上简化了隐藏参数依赖性的行的计算。因此,我的“参数” param就是我要遍历的索引。我的实际代码根据具有更复杂功能的模型参数来计算x和y值。因此,param_max此处的最大值对于每组线都是相同的,尽管实际上并非如此。

import numpy as np
import matplotlib.pyplot as plt

x_array = np.linspace(1, 10, 10)
y_array = x_array
param_max = x_array.size
cmaps = [plt.cm.spring, plt.cm.winter]  # set of colormaps 
                                        # (as many as there are groups of lines)
plt.figure()
for param, (x, y) in enumerate(zip(x_array, y_array)):  
    x_line1 = np.linspace(x, 1.5 * x, 10)
    y_line1 = np.linspace(y**2, y**2 - x, 10)
    x_line2 = np.linspace(1.2 …
Run Code Online (Sandbox Code Playgroud)

python matplotlib legend colormap

3
推荐指数
1
解决办法
380
查看次数

标签 统计

matplotlib ×3

python ×3

legend ×2

colormap ×1

latex ×1