2016-06-20 3 views
2

Я хотел бы использовать ColorFunction, аналогичный Mathematica для моих участков в python.Python matplotlib Colorfunction

Другими словами, я хотел бы позвонить pyplot.plot(x, y, color=c), где c - это вектор, определяющий цвет каждой точки данных.

Есть ли способ достичь этого, используя библиотеку matplotlib?

ответ

0

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

Демоверсия.

enter image description here


Исходный код,

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

fig, ax = plt.subplots() 

nrof_points = 100 
x = np.linspace(0, 10, nrof_points) 
y = np.sin(x) 
colors = cm.rainbow(np.linspace(0, 1, nrof_points))  # generate a bunch of colors 

# draw points 
for idx, point in enumerate(zip(x, y)): 
    ax.plot(point[0], point[1], 'o', color=colors[idx], markersize=10) 

# draw the line 
ax.plot(x, y, 'k') 
plt.grid() 

plt.show()