Saya ingin mengubah warna sumbu, serta tanda centang dan label nilai untuk plot yang saya lakukan menggunakan matplotlib dan PyQt.
Ada ide?
python
colors
pyqt
matplotlib
Richard Durr
sumber
sumber
Jawaban:
Sebagai contoh cepat (menggunakan metode yang sedikit lebih bersih daripada pertanyaan yang berpotensi duplikat):
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()
sumber
[t.set_color('red') for t in ax.xaxis.get_ticklines()]
dan[t.set_color('red') for t in ax.xaxis.get_ticklabels()]
.Jika Anda memiliki beberapa gambar atau subplot yang ingin diubah, sebaiknya gunakan pengelola konteks matplotlib untuk mengubah warna, daripada mengubahnya satu per satu. Dengan manajer konteks, Anda dapat mengubah sementara parameter rc hanya untuk kode indentasi berikut ini, tetapi tidak memengaruhi parameter rc global.
Cuplikan ini menghasilkan dua gambar, yang pertama dengan warna yang dimodifikasi untuk sumbu, tanda centang dan label, dan yang kedua dengan parameter rc default.
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))
Anda dapat mengetik
plt.rcParams
untuk melihat semua parameter rc yang tersedia, dan menggunakan pemahaman daftar untuk mencari kata kunci:# Search for all parameters containing the word 'color' [(param, value) for param, value in plt.rcParams.items() if 'color' in param]
sumber
dimotivasi oleh kontributor sebelumnya, ini adalah contoh tiga sumbu.
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()
sumber