如何在matplotlib绘图循环中为标记和线条设置相同的颜色?

汤姆·库鲁辛格

我必须通过创建循环来使用matplotlib绘制多条线和标记,并且我已经在matplolibrc参数文件中设置了轴的颜色循环。在循环的每个循环中,都会创建一组标记和线条(线条由单独的命令创建)。但是,标记和线的颜色随轴颜色周期而不同。我希望每次运行循环时,标记和线条都具有与该循环相同的颜色。

我已经包含了可复制的代码:

import numpy as np
import itertools
import matplotlib.pyplot as plt
m = 5
n = 5
x = np.zeros(shape=(m, n))
plt.figure(figsize=(5.15, 5.15))
plt.clf()
plt.subplot(111)
marker = itertools.cycle(('o', 'v', '^', '<', '>', 's', '8', 'p'))
for i in range(1, n):
    x = np.dot(i, [1, 1.1, 1.2, 1.3])
    y = x ** 2
    plt.plot(x, y, linestyle='', markeredgecolor='none', marker=marker.next())
    plt.plot(x, y, linestyle='-')
plt.ylabel(r'\textit{y}', labelpad=6)
plt.xlabel(r'\textit{x}', labelpad=6)
plt.show()

使用此代码,我得到的输出是:

在此处输入图片说明

我需要在其范围内绘制的标记和线条具有相同的颜色。如何在matplotlib中完成?

乔尔

我介绍两种方式。第一个可能更干净:它循环一次,并且在每个循环中获取下一种颜色,然后使用该颜色执行两个绘图命令。在第二个步骤中,它循环并执行所有标记,然后重置颜色并再次循环并执行线条。

第一种方法

直接访问颜色循环。如果是matplotlib 1.5或更高版本,请使用color=next(ax._get_lines.prop_cycler)['color']否则color=next(ax._get_lines.color_cycle)

import numpy as np
import itertools
import matplotlib.pyplot as plt
m = 5
n = 5
x = np.zeros(shape=(m, n))
plt.figure(figsize=(5.15, 5.15))
plt.clf()
plt.subplot(111)
marker = itertools.cycle(('o', 'v', '^', '<', '>', 's', '8', 'p'))

ax = plt.gca()
for i in range(1, n):
    x = np.dot(i, [1, 1.1, 1.2, 1.3])
    y = x ** 2
    #
    #for matplotlib before 1.5, use
    #color = next(ax._get_lines.color_cycle)
    #instead of next line (thanks to Jon Loveday for the update)
    #
    color = next(ax._get_lines.prop_cycler)['color']
    plt.plot(x, y, linestyle='', markeredgecolor='none', marker=marker.next(), color=color)
    plt.plot(x, y, linestyle='-', color = color)
plt.ylabel(r'$y$', labelpad=6)
plt.xlabel(r'$x$', labelpad=6)
plt.savefig('test2.png')

另外,请注意,我将您更改\textit{y}$y$通常,您实际上实际上需要数学字体而不是斜体。

在此处输入图片说明

第二种方法

如果您不想将颜色作为参数发送,则可以重置颜色循环并循环两次。在这里,我将其在第一个循环之前重置,然后在第二个循环之前再次重置,以确保它从同一位置开始。

import numpy as np
import itertools
import matplotlib.pyplot as plt
m = 5
n = 5
x = np.zeros(shape=(m, n))
plt.figure(figsize=(5.15, 5.15))
plt.clf()
plt.subplot(111)
marker = itertools.cycle(('o', 'v', '^', '<', '>', 's', '8', 'p'))

plt.gca().set_prop_cycle(None) #if matplotlib <1.5 use set_color_cycle
for i in range(1, n):
    x = np.dot(i, [1, 1.1, 1.2, 1.3])
    y = x ** 2
    plt.plot(x, y, linestyle='', markeredgecolor='none', marker=marker.next())
plt.gca().set_prop_cycle(None)
for i in range(1, n):
    x = np.dot(i, [1, 1.1, 1.2, 1.3])
    y = x ** 2
    plt.plot(x, y, linestyle='-')
plt.ylabel(r'$y$', labelpad=6)
plt.xlabel(r'$x$', labelpad=6)
plt.savefig('test.png')

在此处输入图片说明

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在matplotlib中为标记和线条设置不同的颜色,并在图例中显示它们

来自分类Dev

Matplotlib,如何更改绘图中标题和线条的颜色?

来自分类Dev

如何使用Excel 2010 VBA设置系列线条颜色,标记填充和标记线条颜色

来自分类Dev

如何在ggplot中为线条设置不同的颜色

来自分类Dev

如何使用 matplotlib 为圆圈和线条设置动画?

来自分类Dev

如何在循环中同时显示图像和绘图

来自分类Dev

无法弄清楚如何在循环中为特定的div设置颜色

来自分类Dev

如何在 HighChart 中为非绘图区域设置颜色

来自分类Dev

循环中的 matplotlib 绘图

来自分类Dev

如何在XTS图中标记和更改线条的颜色

来自分类Dev

如何在Jqplot中为标记设置单独的颜色

来自分类Dev

如何在JFreeChart烛台图表中将主体和边框颜色设置为相同

来自分类Dev

绘图时无法设置线条颜色

来自分类Dev

如何在 for 循环中为列名设置别名?

来自分类Dev

Matplotlib 在循环中重复绘图

来自分类Dev

Python:Matplotlib - 在循环绘图结束时设置颜色空间

来自分类Dev

如何在D3 Dimple中为不同的线条和线条系列正确分配单独的颜色?

来自分类Dev

如何在for循环中定义和设置TextView以简化代码?

来自分类Dev

如何在NLTK Matplotlib函数中为多行设置颜色?

来自分类Dev

如何在循环中更改行颜色?

来自分类Dev

如何在循环中获得两条线以相同的颜色绘制?

来自分类Dev

gnuplot:在for循环中设置线条样式

来自分类Dev

如何在Matlab中为绘图的特定x值设置背景颜色?

来自分类Dev

如何在外部系列ZingChart中为绘图值设置颜色

来自分类Dev

设置/操纵SimpleFillSymbol的颜色和线条颜色

来自分类Dev

如何在Gnuplot中设置线条旁边的标签,但包括线条的颜色

来自分类Dev

如何在循环中设置状态?

来自分类Dev

如何在for循环中设置条件以打破

来自分类Dev

如何在for循环中设置JLabel的属性?

Related 相关文章

  1. 1

    在matplotlib中为标记和线条设置不同的颜色,并在图例中显示它们

  2. 2

    Matplotlib,如何更改绘图中标题和线条的颜色?

  3. 3

    如何使用Excel 2010 VBA设置系列线条颜色,标记填充和标记线条颜色

  4. 4

    如何在ggplot中为线条设置不同的颜色

  5. 5

    如何使用 matplotlib 为圆圈和线条设置动画?

  6. 6

    如何在循环中同时显示图像和绘图

  7. 7

    无法弄清楚如何在循环中为特定的div设置颜色

  8. 8

    如何在 HighChart 中为非绘图区域设置颜色

  9. 9

    循环中的 matplotlib 绘图

  10. 10

    如何在XTS图中标记和更改线条的颜色

  11. 11

    如何在Jqplot中为标记设置单独的颜色

  12. 12

    如何在JFreeChart烛台图表中将主体和边框颜色设置为相同

  13. 13

    绘图时无法设置线条颜色

  14. 14

    如何在 for 循环中为列名设置别名?

  15. 15

    Matplotlib 在循环中重复绘图

  16. 16

    Python:Matplotlib - 在循环绘图结束时设置颜色空间

  17. 17

    如何在D3 Dimple中为不同的线条和线条系列正确分配单独的颜色?

  18. 18

    如何在for循环中定义和设置TextView以简化代码?

  19. 19

    如何在NLTK Matplotlib函数中为多行设置颜色?

  20. 20

    如何在循环中更改行颜色?

  21. 21

    如何在循环中获得两条线以相同的颜色绘制?

  22. 22

    gnuplot:在for循环中设置线条样式

  23. 23

    如何在Matlab中为绘图的特定x值设置背景颜色?

  24. 24

    如何在外部系列ZingChart中为绘图值设置颜色

  25. 25

    设置/操纵SimpleFillSymbol的颜色和线条颜色

  26. 26

    如何在Gnuplot中设置线条旁边的标签,但包括线条的颜色

  27. 27

    如何在循环中设置状态?

  28. 28

    如何在for循环中设置条件以打破

  29. 29

    如何在for循环中设置JLabel的属性?

热门标签

归档