Matplotlib में द्वितीयक y- अक्ष में y- अक्ष लेबल जोड़ना


118

मैं बाईं y- अक्ष का उपयोग करके ay लेबल जोड़ plt.ylabelसकता हूं, लेकिन मैं इसे द्वितीयक y- अक्ष में कैसे जोड़ सकता हूं?

table = sql.read_frame(query,connection)

table[0].plot(color=colors[0],ylim=(0,100))
table[1].plot(secondary_y=True,color=colors[1])
plt.ylabel('$')

जवाबों:


232

सबसे अच्छा तरीका axesसीधे वस्तु के साथ बातचीत करना है

import numpy as np
import matplotlib.pyplot as plt
x = np.arange(0, 10, 0.1)
y1 = 0.05 * x**2
y2 = -1 *y1

fig, ax1 = plt.subplots()

ax2 = ax1.twinx()
ax1.plot(x, y1, 'g-')
ax2.plot(x, y2, 'b-')

ax1.set_xlabel('X data')
ax1.set_ylabel('Y1 data', color='g')
ax2.set_ylabel('Y2 data', color='b')

plt.show()

उदाहरण ग्राफ


बाईं ओर की तरह दाईं धुरी कैसे प्राप्त करें, मेरा मतलब है, नीचे से ऊपर तक, 0 से 5 तक, संरेखित करें।
सिगुर

टिकों को ओवरलैप किए बिना नीले पाठ को कैसे घुमाएं?
सिगुर

@Sigur को आपको ax2.set_ylabel
Paul H

@PaHH, मैंने पाया कि हम ax1 से y सीमाएँ प्राप्त कर सकते हैं और इसे ax2 तक सेट कर सकते हैं, इसलिए लेबल की स्थिति संरेखित की जाएगी।
सिगुर

@Sigur मैं यह नहीं मानता कि एक्सिस सीमाएं और टिक लेबल रोटेशन के साथ कैसे बातचीत करते हैं, लेकिन अगर आप खुश हैं, तो गॉडस्पीड
पॉल एच

21

मैटलोट्लिब के साथ खिलवाड़ किए बिना एक सीधा समाधान है: बस पांडा।

मूल उदाहरण को ट्वीक करना:

table = sql.read_frame(query,connection)

ax = table[0].plot(color=colors[0],ylim=(0,100))
ax2 = table[1].plot(secondary_y=True,color=colors[1], ax=ax)

ax.set_ylabel('Left axes label')
ax2.set_ylabel('Right axes label')

मूल रूप से, जब secondary_y=Trueविकल्प दिया जाता है (Eventhough ax=axभी पास हो जाता है) pandas.plotएक अलग अक्ष देता है जिसका उपयोग हम लेबल सेट करने के लिए करते हैं।

मुझे पता है कि यह बहुत पहले उत्तर दिया गया था, लेकिन मुझे लगता है कि यह दृष्टिकोण इसके लायक है।


धन्यवाद - महान दृष्टिकोण! हालांकि, यह ध्यान देने योग्य है कि यह केवल तभी काम करता है जब आप पहले प्राथमिक y- अक्ष पर साजिश रचते हैं, फिर द्वितीयक y- अक्ष, जैसा आपने किया है। यदि आप ऑर्डर स्विच करते हैं, तो यह गलत व्यवहार करता है।
user667489

7

मेरे पास अभी पायथन तक पहुंच नहीं है, लेकिन मेरे सिर के ऊपर से:

fig = plt.figure()

axes1 = fig.add_subplot(111)
# set props for left y-axis here

axes2 = axes1.twinx()   # mirror them
axes2.set_ylabel(...)
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.