Я хотел бы изменить цвет оси, а также отметок и меток значений для графика, который я сделал с помощью matplotlib и PyQt.
Любые идеи?
python
colors
pyqt
matplotlib
Ричард Дурр
источник
источник
Ответы:
В качестве быстрого примера (используя более чистый метод, чем потенциально повторяющийся вопрос):
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()
источник
[t.set_color('red') for t in ax.xaxis.get_ticklines()]
и[t.set_color('red') for t in ax.xaxis.get_ticklabels()]
.Если у вас есть несколько фигур или подзаголовков, которые вы хотите изменить, может быть полезно использовать диспетчер контекста matplotlib для изменения цвета вместо изменения каждого из них по отдельности. Диспетчер контекста позволяет временно изменять параметры rc только для следующего кода с отступом, но не влияет на глобальные параметры rc.
Этот фрагмент дает две цифры: первая с измененными цветами для оси, меток и меток, а вторая - с параметрами rc по умолчанию.
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))
Вы можете печатать,
plt.rcParams
чтобы просмотреть все доступные параметры RC, и использовать список для поиска ключевых слов:# Search for all parameters containing the word 'color' [(param, value) for param, value in plt.rcParams.items() if 'color' in param]
источник
мотивированный предыдущими участниками, это пример трех осей.
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()
источник