python - 如何在 matplotlib 图形上循环显示颜色和线型?

标签 python matplotlib

我有一堆图表,每张图表大约有 15 到 20 条线。我想循环使用颜色和线条样式以获得许多独特的线条。如果我使用 6 种颜色和 4 种线型,应该有 20 条独特的线,但是下面的代码只产生 6 条线。我做错了什么?

这是一个假数据集

import matplotlib.pyplot as plt
from cycler import cycler
import numpy
import seaborn
seaborn.set_style('white')

x = range(10)
ys = []
for i in range(20):
    ys.append(numpy.random.uniform(1, 10, size=10)*i)

这是我可以从其他帖子中收集到的内容:

plt.rc('axes', prop_cycle=(cycler('color', ['r', 'g', 'b', 'y', 'c', 'k']) +
                           cycler('linestyle', ['-', '--', ':', '-.', '-', '--'])))

请注意,我在 linestyle cycler 中使用了重复项,否则我们会得到 ValueError。

和策划

plt.figure()
for i in range(20):
    plt.plot(x, ys[i], label=i)
plt.legend(loc=(1, 0.1))
plt.show()

enter image description here

最佳答案

您可能希望将两个循环仪相乘:

plt.rc('axes', prop_cycle=(cycler('color', ['r', 'g', 'b', 'y', 'c', 'k']) *
                           cycler('linestyle', ['-', '--', ':', '-.'])))

如前所述here ,加法同时循环颜色和线型,而乘法混合所有属性。

在这种情况下,您不必使用重复的线型,因为颜色和线型不必具有相同的周期长度。

关于python - 如何在 matplotlib 图形上循环显示颜色和线型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50372299/

相关文章:

python - 为什么从 Sublime Text 2 调用 Matplotlib 不行?

python - 对数据点拟合更好的高斯分布?

python - Sympy - 改变绘图的 y 轴范围

python - 如何更改标签内某些单词的颜色?

python - 构建 kivy 应用程序时出错 : ModuleNotFoundError: No module named 'typing_extensions'

python - Django错误 "no such column: tagging_tag.name"

python - 给定 JSON 文件上的一组节点,查找两个节点是否连接的最佳方法

python - Seaborn Striplot 数据可视化未将颜色应用于标记/条/条

python - 加速 matplotlib 散点图

python - 获取 django 的最新条目