ম্যাটপ্লটলিব কিংবদন্তিরা কাজ করছেন না


98

ম্যাটপ্ললটিব আপগ্রেড করার পরে যখনই কোনও কিংবদন্তি তৈরি করার চেষ্টা করছি আমি নিম্নলিখিত ত্রুটিটি পেয়েছি:

/usr/lib/pymodules/python2.7/matplotlib/legend.py:610: UserWarning: Legend does not support [<matplotlib.lines.Line2D object at 0x3a30810>]
Use proxy artist instead.

http://matplotlib.sourceforge.net/users/legend_guide.html#using-proxy-artist

  warnings.warn("Legend does not support %s\nUse proxy artist instead.\n\nhttp://matplotlib.sourceforge.net/users/legend_guide.html#using-proxy-artist\n" % (str(orig_handle),))
/usr/lib/pymodules/python2.7/matplotlib/legend.py:610: UserWarning: Legend does not support [<matplotlib.lines.Line2D object at 0x3a30990>]
Use proxy artist instead.

http://matplotlib.sourceforge.net/users/legend_guide.html#using-proxy-artist

  warnings.warn("Legend does not support %s\nUse proxy artist instead.\n\nhttp://matplotlib.sourceforge.net/users/legend_guide.html#using-proxy-artist\n" % (str(orig_handle),))

এমনকি এটি এর মতো তুচ্ছ স্ক্রিপ্টের সাথে ঘটে:

import matplotlib.pyplot as plt

a = [1,2,3]
b = [4,5,6]
c = [7,8,9]

plot1 = plt.plot(a,b)
plot2 = plt.plot(a,c)

plt.legend([plot1,plot2],["plot 1", "plot 2"])
plt.show()

আমি সেই লিঙ্কটি পেয়েছি যা ত্রুটিটি ত্রুটির উত্স নির্ণয়ের ক্ষেত্রে বেশ বেহুদা দিকে চিহ্নিত করে।

উত্তর:


168

আপনার কমা যুক্ত করা উচিত:

plot1, = plt.plot(a,b)
plot2, = plt.plot(a,c)

আপনার কমাগুলির প্রয়োজনীয়তার কারণ হ'ল plt.plot () লাইন অবজেক্টের একটি দ্বিগুণ ফিরিয়ে দেয়, প্রকৃতপক্ষে কমান্ডটি থেকে কতগুলি তৈরি করা হয় তা নয়। কমা ব্যতীত "প্লট 1" এবং "প্লট 2" লাইন অবজেক্টগুলির পরিবর্তে টিপলস হয়, যার ফলে পরবর্তী কলটি প্লট.লেগেন্ড () কলটি ব্যর্থ হয়।

কমাটি স্পষ্টতই ফলাফলগুলি প্যাক করে দেয় যাতে একটি টিউলের পরিবর্তে "প্লট 1" এবং "প্লট 2" স্বয়ংক্রিয়ভাবে টিপলের অভ্যন্তরে প্রথম বস্তুতে পরিণত হয়, অর্থাৎ আপনি যে লাইনের অবজেক্টগুলি চান তা আসলে।

http://matplotlib.sourceforge.net/users/legend_guide.html#addoding-the-order-of-legnd-items

রেখা, = চক্রান্ত (এক্স, পাপ (এক্স)) কমা কাকে বোঝায়?


4
আপনি কি এখানে ব্যাখ্যাটি অনুলিপি / যুক্ত করতে পারবেন?
স্ট্যাকওভারফ্লো

আমাকে সাহায্য করেছেন, ধন্যবাদ
abdoulsn

20

"লেবেল" কীওয়ার্ড যেমন ব্যবহার করুন:

pyplot.plot(x, y, label='x vs. y')

এবং তারপরে কিংবদন্তি যুক্ত করুন:

pyplot.legend()

কিংবদন্তি লাইন বৈশিষ্ট্য যেমন বেধ, রঙ ইত্যাদি বজায় রাখবে

এখানে চিত্র বর্ণনা লিখুন


9

handlesএকে ব্যবহার করুনProxy artists

import matplotlib.lines as mlines
import matplotlib.pyplot as plt
# defining legend style and data
blue_line = mlines.Line2D([], [], color='blue', label='My Label')
reds_line = mlines.Line2D([], [], color='red', label='My Othes')

plt.legend(handles=[blue_line, reds_line])

plt.show()

-1

গ্রাফ প্লট করার সময় লেবেল ব্যবহার করুন তবে কেবলমাত্র আপনি কিংবদন্তি ব্যবহার করতে পারবেন। x অক্ষের নাম এবং y অক্ষের নাম কিংবদন্তির নামের চেয়ে আলাদা।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.