Me gustaría cambiar el color del eje, así como las marcas y las etiquetas de valor para un gráfico que hice usando matplotlib y PyQt.
¿Algunas ideas?
python
colors
pyqt
matplotlib
Richard Durr
fuente
fuente
Respuestas:
Como ejemplo rápido (usando un método un poco más limpio que la pregunta potencialmente duplicada):
import matplotlib.pyplot as plt fig = plt.figure() ax = fig.add_subplot(111) ax.plot(range(10)) ax.set_xlabel('X-axis') ax.set_ylabel('Y-axis') ax.spines['bottom'].set_color('red') ax.spines['top'].set_color('red') ax.xaxis.label.set_color('red') ax.tick_params(axis='x', colors='red') plt.show()
fuente
[t.set_color('red') for t in ax.xaxis.get_ticklines()]
y[t.set_color('red') for t in ax.xaxis.get_ticklabels()]
.Si tiene varias figuras o subtramas que desea modificar, puede ser útil usar el administrador de contexto matplotlib para cambiar el color, en lugar de cambiar cada una individualmente. El administrador de contexto le permite cambiar temporalmente los parámetros rc solo para el código sangrado inmediatamente siguiente, pero no afecta los parámetros rc globales.
Este fragmento produce dos figuras, la primera con colores modificados para el eje, ticks y ticklabels, y la segunda con los parámetros rc predeterminados.
import matplotlib.pyplot as plt with plt.rc_context({'axes.edgecolor':'orange', 'xtick.color':'red', 'ytick.color':'green', 'figure.facecolor':'white'}): # Temporary rc parameters in effect fig, (ax1, ax2) = plt.subplots(1,2) ax1.plot(range(10)) ax2.plot(range(10)) # Back to default rc parameters fig, ax = plt.subplots() ax.plot(range(10))
Puede escribir
plt.rcParams
para ver todos los parámetros rc disponibles y usar la comprensión de lista para buscar palabras clave:# Search for all parameters containing the word 'color' [(param, value) for param, value in plt.rcParams.items() if 'color' in param]
fuente
motivado por colaboradores anteriores, este es un ejemplo de tres ejes.
import matplotlib.pyplot as plt x_values1=[1,2,3,4,5] y_values1=[1,2,2,4,1] x_values2=[-1000,-800,-600,-400,-200] y_values2=[10,20,39,40,50] x_values3=[150,200,250,300,350] y_values3=[-10,-20,-30,-40,-50] fig=plt.figure() ax=fig.add_subplot(111, label="1") ax2=fig.add_subplot(111, label="2", frame_on=False) ax3=fig.add_subplot(111, label="3", frame_on=False) ax.plot(x_values1, y_values1, color="C0") ax.set_xlabel("x label 1", color="C0") ax.set_ylabel("y label 1", color="C0") ax.tick_params(axis='x', colors="C0") ax.tick_params(axis='y', colors="C0") ax2.scatter(x_values2, y_values2, color="C1") ax2.set_xlabel('x label 2', color="C1") ax2.xaxis.set_label_position('bottom') # set the position of the second x-axis to bottom ax2.spines['bottom'].set_position(('outward', 36)) ax2.tick_params(axis='x', colors="C1") ax2.set_ylabel('y label 2', color="C1") ax2.yaxis.tick_right() ax2.yaxis.set_label_position('right') ax2.tick_params(axis='y', colors="C1") ax3.plot(x_values3, y_values3, color="C2") ax3.set_xlabel('x label 3', color='C2') ax3.xaxis.set_label_position('bottom') ax3.spines['bottom'].set_position(('outward', 72)) ax3.tick_params(axis='x', colors='C2') ax3.set_ylabel('y label 3', color='C2') ax3.yaxis.tick_right() ax3.yaxis.set_label_position('right') ax3.spines['right'].set_position(('outward', 36)) ax3.tick_params(axis='y', colors='C2') plt.show()
fuente