एक्स अक्ष बिंदुओं के लिए कस्टम टेक्स्ट के साथ प्लॉट करें


106

मैं नीचे दिए गए नमूना कोड की तरह matplotlib और python का उपयोग करके एक भूखंड खींच रहा हूं।

x = array([0,1,2,3])
y = array([20,21,22,23])
plot(x,y)
show()

जैसा कि यह एक्स अक्ष पर ऊपर कोड है मैं तैयार मानों को देखूंगा 0.0, 0.5, 1.0, 1.5अर्थात मेरे संदर्भ x मूल्यों के समान मान।

वैसे भी x के प्रत्येक बिंदु को एक अलग स्ट्रिंग में मैप करने के लिए क्या है? इसलिए उदाहरण के लिए मैं x अक्ष को महीनों के नाम (तार Jun, July,...) या अन्य तार जैसे कि लोगों के नाम ( "John", "Arnold", ...) या घड़ी का समय ( "12:20", "12:21", "12:22", ..) दिखाना चाहता हूं ।

क्या आप जानते हैं कि मैं क्या कर सकता हूं या किस कार्य को देखने के लिए क्या कर सकता हूं?
क्या मेरे उद्देश्य से यह matplotlib.tickerमददगार हो सकता है?

जवाबों:


195

आप मैन्युअल रूप से सेट कर सकते हैं xticks (और yticks) का उपयोग कर pyplot.xticks :

import matplotlib.pyplot as plt
import numpy as np

x = np.array([0,1,2,3])
y = np.array([20,21,22,23])
my_xticks = ['John','Arnold','Mavis','Matt']
plt.xticks(x, my_xticks)
plt.plot(x, y)
plt.show()


44
rotationकभी-कभी उपयोगी भी होता है:plt.xticks(range(5), ["some", "words", "as", "x", "ticks"], rotation=45)
Adobe

4
और एक्स-अक्ष के साथ समान रूप से वस्तुओं को कैसे फैलाना है? मान लीजिए कि मेरे एक्स अक्ष में आंतरिक रूप से 1 मिलियन अंक हैं और मैं केवल जॉन, अर्नोल्ड, माविस और मैट को प्रदर्शित करना चाहता हूं जो कि अब तक वितरित की गई अक्ष के साथ है?
स्टीव के

@SirBenBenji: x[idx]केवल उस डेटा का चयन करने के लिए अनुक्रमण (जैसे ) का उपयोग करें जिसे आप दिखाना चाहते हैं।
unutbu

मुझे समझ में नहीं आता है कि आप पाइलैब क्यों लिखते हैं, यह जवाब मेरे विचार में पुराना और गलत है।
मारियो क्रैन

1

इसने मेरे लिए काम किया। हर महीने एक्स अक्ष पर

str_month_list = ['January','February','March','April','May','June','July','August','September','October','November','December']
ax.set_xticks(range(0,12))
ax.set_xticklabels(str_month_list)
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.