मैं ध्रुवीय 'साइडर' प्लॉट बनाने की कोशिश कर रहा हूं लेकिन मुझे धुरी लेबल के साथ कुछ समस्याएं आ रही हैं। एक्सएक्सिस टिक लेबल्स हमेशा वाई अक्ष ग्रिड के नीचे एक परत पर समाप्त होने लगते हैं (अक्षरों को ग्रिड लाइन द्वारा कवर किया गया है, जैसा कि नीचे दिए गए आंकड़े में दिखाया गया है), मैं उन्हें शीर्ष पर ले जाना चाहता हूं।एक्सिस लेबल प्लस में अक्ष द्वारा छिपा हुआ है?
मैंने ज़ोरों को स्थापित करने की कोशिश की लेकिन बिना किसी सफलता के। यदि मैंने 2 से ऊपर प्लॉट लाइनों के ज़ेडर को सेट किया है तो वे अक्ष और ग्रिड के शीर्ष पर (परत के संदर्भ में) जाते हैं ... लेकिन मैं अभी भी प्लेटों को प्लॉट के शीर्ष पर दिखाना चाहता हूं। अगर मैं उन्हें नीचे 2 सेट करता हूं तो लाइनें ग्रिड के नीचे जाती हैं। ग्रिड या टिक्स लेबल्स के ज़ेडर को सेट करना प्रतीत नहीं होता है।
यहां मेरा प्रयास है: जैसा कि आप ग्रिड की लाल रेखा को 'उद्योग' के शीर्ष पर ऊपर देख सकते हैं जबकि ग्रिड की ग्रे रेखा नीचे रहती है। मैं दोनों लाइन के ऊपर और भूखंडों
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
import random
data = random.sample(range(100), 5)
data[0] = 100
data[3] = 50
index = ['industry', 'residential', 'agriculture', 'transport', 'other']
df1 = pd.DataFrame(data, index=index, columns=['data'])
df2 = pd.DataFrame(np.array(data)/2, index=index, columns=['data'])
fig = plt.figure()
ax = fig.add_subplot(111, projection="polar")
ax.grid(True)
ax.yaxis.grid(color='r')
ax.xaxis.grid(color='#dddddd')
for spine in ax.spines.values():
spine.set_edgecolor('None')
theta = np.arange(len(df1))/float(len(df1))*2.*np.pi
l1, = ax.plot(theta, df1["data"], color="gold", marker="o", label=None, zorder=1) # , zorder = -3)
l2, = ax.plot(theta, df2["data"], color='tomato', marker="o", label=None, zorder=1.1) #, zorder =-2)
def _closeline(line):
x, y = line.get_data()
x = np.concatenate((x, [x[0]]))
y = np.concatenate((y, [y[0]]))
line.set_data(x, y)
[_closeline(l) for l in [l1, l2]]
ax.fill(theta, df1["data"], "gold", alpha=1, zorder=1)
ax.fill(theta, df2["data"], 'tomato', alpha=1, zorder=1.1)
ax.set_rlabel_position(216)
ax.set_xticks(theta)
ax.set_xticklabels(df2.index, fontsize=12)#, zorder=1)
legend = plt.legend(handles=[l1,l2], labels =['first','second'], loc='lower right')
plt.title("data [unit]", fontsize = 16, y = 1.2)
plt.savefig('atlas//trial2.png', bbox_inches='tight', dpi = 300)
plt.show()
मैंने 'ज़ॉर्डर' के कई संयोजनों की कोशिश की है जो _should_ आपकी समस्या को प्रभावित करते हैं, इसका कोई फायदा नहीं हुआ। यह एक बग जैसा हो सकता है [इस पर] (https://github.com/matplotlib/matplotlib/issues/5045)। कार्टेरियाई लोगों की तुलना में ध्रुवीय भूखंड हमेशा थोड़ा अधिक समस्याग्रस्त प्रतीत होते हैं। अच्छी तरह से गठित प्रश्न के लिए Kudos चलाने योग्य उदाहरण के साथ पूरा! –