необходимо построить два типа данных с разным цветом в Matplotlib - PullRequest
0 голосов
/ 09 июня 2019

У меня есть некоторые данные, такие как:

x = [0,1,0,0,0,1,0,.....]
w = [5,3,3.4,5,3,5,.....]
y = [1,1,0,1,0,0,0,.....]

Мне нужно построить (x,w), и цвет этой точки должен быть определен как y, например, если у меня есть x = 1, y = 1 и w = 3, тогда эта точка должна быть color1. И если у меня есть x = 1, y = 0, то это должно быть color2 и color3 для x = 0, y = 1, color4 для x = 0, y = 0.

Я попробовал некоторые операторы if else, но не смог заставить их работать.

мой код:

def plot(x,y,w):
    for (a,b) in zip(x,y):
        if (a,b)==(0,0):
            plt.plot(x,w,'ro')

Я хочу получить другую цветовую точку для другого значения (x,y).

1 Ответ

0 голосов
/ 09 июня 2019

Вы можете использовать точечные диаграммы:

import numpy as np
colors = 2 * np.array(x) + np.array(y)
plt.scatter(x,w, c = colors)

Это автоматически выбирает цвет, если вы хотите использовать пользовательские цвета, которые вы можете сделать:

import numpy as np
import matplotlib.pyplot as plt
colors = 2 * np.array(x) + np.array(y)
plt.scatter(x,w, c = colors)

Если вы хотите соединить точки, вы можете просто сделать:

import numpy as np
import matplotlib.pyplot as plt
colorNames = np.array(['red', 'blue', ...])
colors = 2 * np.array(x) + np.array(y)
plt.scatter(x,w, c = colorNames[colors])
plt.plot(x,w)

Здесь я считаю, что последовательность из 0 и 1 из x и y является кодировкой цвета в 2 битах

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...