matrices graficos graficas graficar coordenadas python matplotlib

graficas - python graficos 2d



matplotlib: cómo cambiar el color de los puntos de datos en función de alguna variable (2)

Tengo 2 variables (x, y) que cambian con el tiempo (t). Quiero trazar x contra t y colorear las marcas basadas en el valor de yeg para los valores más altos de y el color de la marca es verde oscuro, para el valor más bajo es rojo oscuro, y para los valores intermedios el color se escalará entre verde y rojo.

¿Se puede hacer esto con matplotlib en python?


Si desea trazar líneas en lugar de puntos, consulte este ejemplo , modificado aquí para trazar los puntos buenos / malos que representan una función como un negro / rojo según corresponda:

def plot(xx, yy, good): """Plot data Good parts are plotted as black, bad parts as red. Parameters ---------- xx, yy : 1D arrays Data to plot. good : `numpy.ndarray`, boolean Boolean array indicating if point is good. """ import numpy as np import matplotlib.pyplot as plt fig, ax = plt.subplots() from matplotlib.colors import from_levels_and_colors from matplotlib.collections import LineCollection cmap, norm = from_levels_and_colors([0.0, 0.5, 1.5], [''red'', ''black'']) points = np.array([xx, yy]).T.reshape(-1, 1, 2) segments = np.concatenate([points[:-1], points[1:]], axis=1) lines = LineCollection(segments, cmap=cmap, norm=norm) lines.set_array(good.astype(int)) ax.add_collection(lines) plt.show()


Esto es para lo que matplotlib.pyplot.scatter es.

Como un ejemplo rápido:

import matplotlib.pyplot as plt import numpy as np # Generate data... t = np.linspace(0, 2 * np.pi, 20) x = np.sin(t) y = np.cos(t) plt.scatter(t,x,c=y) plt.show()