Как изменить цвет графика рассеяния в matplotlib? - PullRequest
0 голосов
/ 02 декабря 2018

У меня есть массив точек данных измерения n на 2, где второе измерение $ 2 $ соответствует действительной части и мнимой части комплексного числа.

Теперь я знаю, что точки данных будут пересекать единичный круг на плоскости пару раз.Я хочу реализовать следующее: предположим, что начало пути будет какого-то цвета, оно изменится на другой, когда коснется круга единиц на плоскости, и снова изменит цвет, если снова пересечет круг единиц.Я не уверен, что это легко реализовать.

Ответы [ 3 ]

0 голосов
/ 02 декабря 2018

Попробуйте что-нибудь вроде

# Import matplotlib module as plt
import matplotlib.pyplot as plt
import math

x = [3,7,1,9,5,3,5,8,math.sqrt(3)/2]
y = [4,7,8,2,3,4,5,1,1/2]
# Plot scatter Plot
for i in range(len(x)):
    if (round(x[i]**2+y[i]**2,2)) == 1: # equation of unit circle is x^2+y^2=1
        plt.scatter(x[i],y[i], color ='g',marker ='.')
    else:
        plt.scatter(x[i],y[i], color ='r',marker ='*')

plt.xlabel('x')
plt.ylabel('y')
plt.xlim([0,10])
plt.ylim([0,10])
plt.title('Scatter Plot')
plt.legend()
plt.show()

enter image description here

0 голосов
/ 02 декабря 2018

Вы можете попробовать

import numpy as np
import matplotlib.pyplot as plt
import matplotlib.cm as cm

X = [1,2,3,4]
Y1 = [4,8,12,16]
Y2 = [1,4,9,16]

plt.scatter(X,Y1,color='red')
plt.scatter(X,Y2,color='blue')

plt.show()

Scatter plot 1

или попробовать

x = np.arange(10)
ys = [i+x+(i*x)**2 for i in range(10)]

colors = cm.rainbow(np.linspace(0, 1, len(ys)))

for y, c in zip(ys, colors):
    plt.scatter(x, y, color=c)

plt.show()

Scatter Plot 2

Вы также можете захотетьчтобы проверить эту тему, также: Установка разного цвета для каждой серии в точечной диаграмме на matplotlib

0 голосов
/ 02 декабря 2018

Самый простой способ сделать это, вероятно, реализовать логику вне графика, назначив разные группы для каждой точки, определенной вашей концепцией пересечения окружности.
Как только вы получите эти группыИндексы это просто plt.scatter, используя c (расшифровывается как «цвет»).

Удачи!

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