python为循环线条增加颜色_如何为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$。通常你需要数学字体而不是斜体。

FvglL.png

第二种方法

如果不想将颜色作为参数发送进来,则可以重置颜色循环并进行两次循环。在这里,我在第一个循环之前重置它,然后在第二个循环之前再次重置它,以确保它从同一个地方开始。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_prob_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')

464b5a91a37f030c91dec4013fbc885a.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值