मैट्रिक्स के रंग को बदलते हुए, matplotlib में प्लॉट के लिए टिक और लेबल


98

मैं धुरी का रंग बदलना चाहता हूं, साथ ही एक प्लॉट के लिए टिक्स और मूल्य-लेबल जो मैंने matplotlib का उपयोग करके किया है PyQt।

कोई विचार?


अक्ष के लिए डुप्लिकेट: stackoverflow.com/questions/1982770/…
मार्क

जवाबों:


170

एक त्वरित उदाहरण के रूप में (संभावित डुप्लिकेट प्रश्न की तुलना में थोड़ा क्लीनर विधि का उपयोग करके):

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()

वैकल्पिक शब्द


अब तक के लिए धन्यवाद। ax.tick_params (अक्ष = 'x', रंग = 'लाल') एक AxesSubplot का निर्माण करता है जिसमें कोई विशेषता नहीं है 'tick_params' त्रुटि। तुम जानते हो क्यों?
रिचर्ड ड्यूर

14
हम्म ... यह अजीब है ... आप किस संस्करण का उपयोग कर रहे हैं? का संभावित हल करने के लिए है [t.set_color('red') for t in ax.xaxis.get_ticklines()]और [t.set_color('red') for t in ax.xaxis.get_ticklabels()]
जो किंग्सटन

33

यदि आपके पास कई आंकड़े या सबप्लॉट हैं जिन्हें आप संशोधित करना चाहते हैं, तो रंग बदलने के लिए matplotlib संदर्भ प्रबंधक का उपयोग करना उपयोगी हो सकता है , बजाय हर एक को व्यक्तिगत रूप से बदलने के। संदर्भ प्रबंधक आपको केवल तुरंत इंडेंट कोड का पालन करने के लिए आरसी मापदंडों को अस्थायी रूप से बदलने की अनुमति देता है, लेकिन वैश्विक आरसी मापदंडों को प्रभावित नहीं करता है।

यह स्निपेट दो आंकड़े देता है, पहला अक्ष के लिए संशोधित रंगों के साथ, टिक और टिकलैबल्स के लिए और दूसरा डिफ़ॉल्ट आरसी मापदंडों के साथ।

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सभी उपलब्ध आरसी मापदंडों को देखने के लिए टाइप कर सकते हैं , और कीवर्ड के लिए खोज करने के लिए सूची समझ का उपयोग कर सकते हैं :

# Search for all parameters containing the word 'color'
[(param, value) for param, value in plt.rcParams.items() if 'color' in param]

0

पिछले योगदानकर्ताओं द्वारा प्रेरित, यह तीन अक्षों का एक उदाहरण है।

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()
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.