【问题标题】:Trying to change default colours when plotting in spyder 2.7在 spyder 2.7 中绘图时尝试更改默认颜色
【发布时间】:2017-09-28 06:34:57
【问题描述】:

我有一个程序,它采用 300 个粒子并将每个粒子移动 300 步。每次这些粒子向前移动时,我的程序都会绘制粒子的位置。在绘制 900 个不同的点时,我需要我的程序能够循环显示 5 种不同的颜色,以使它们更容易辨认。任何想法如何设置颜色循环?我目前的代码包含在下面:

import numpy as np 

import matplotlib.pyplot as plt

q = np.zeros((300,300))

p = np.zeros((300,300))

mu = 1

R = 1.0/np.sqrt(2.0)

theta = R*2*np.pi

q[:,0] = np.random.uniform(-20.0, 20.0, 300)

p[:,0] = np.random.uniform(-20.0, 20.0, 300)

N = len(q)

for i in range(1,N):  

    q[:,i] = q[:,i-1]*np.cos(theta) + p[:,i-1]*np.sin(theta) + mu*np.sin(q[:,i-1])*np.sin(theta)

    p[:,i] = p[:,i-1]*np.cos(theta) - q[:,i-1]*np.sin(theta) + mu*np.sin(q[:,i-1])*np.cos(theta)


plt.plot(q, p, "o", markersize = 0.1)

【问题讨论】:

    标签: python numpy matplotlib plot spyder


    【解决方案1】:

    你的意思是这样的?

    colors = ('black', 'blue', 'red', 'green','orange')
    n_colors = len(colors)
    
    for offset, color in enumerate(colors):
        plt.plot(q[:,offset::n_colors], p[:,offset::n_colors],
                 marker="o", markersize = 0.1, color=color)
    

    从中得到的图像不是很丰富,很难。但也许你可以从这里开始一些有用的事情......

    如果您不想关联积分,请尝试scatter plot

    for offset, color in enumerate(colors):
        plt.scatter(q[:,offset::n_colors], p[:,offset::n_colors],
                    marker="o", color=color, alpha=.4, s=1)
    

    哪些情节:

    【讨论】:

    • 有没有办法阻止他们加入,只是在没有线条的情况下绘制点?
    • @akearney 添加了散点图示例,也许这更接近您想要的?
    【解决方案2】:

    如果您在循环中为每个步骤发出 plot 命令,则可以执行此操作。

    首先使用着色命令创建一个循环迭代器:

    import itertools
    col = itertools.cycle(['g', 'b', 'r', 'k'])
    

    然后更改您的代码:

    for i in range(1,N):  
    
        q[:,i] = q[:,i-1]*np.cos(theta) + p[:,i-1]*np.sin(theta) + mu*np.sin(q[:,i-1])*np.sin(theta)
    
        p[:,i] = p[:,i-1]*np.cos(theta) - q[:,i-1]*np.sin(theta) + mu*np.sin(q[:,i-1])*np.cos(theta)
    
        plt.plot(q[:,i], p[:,i], marker = "o", markersize = 0.1, color = next(col)) 
    

    【讨论】:

    • 你知道我如何绘制单个点而不是让它们连起来吗?
    猜你喜欢
    • 2019-03-29
    • 2014-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-15
    • 2013-03-26
    • 2016-07-22
    • 1970-01-01
    相关资源
    最近更新 更多