سؤال

أنا قليلا من مبتدئ في هذا وأنا أحاول إنشاء مخطط مبعثر مع فقاعة مخصص الأحجام والألوان.يعرض الرسم البياني بخير ولكن كيف يمكنني الحصول على أسطورة تقول ما الألوان الرجوع إلى.هذا أقصى ما لدي:

inc = []
out = []
bal = []
col = []

fig=Figure()
ax=fig.add_subplot(111)

inc = (30000,20000,70000)
out = (80000,30000,40000)
bal = (12000,10000,6000)
col = (1,2,3)
leg = ('proj1','proj2','proj3')

ax.scatter(inc, out, s=bal, c=col)
ax.axis([0, 100000, 0, 100000])

ax.set_xlabel('income', fontsize=20)
ax.set_ylabel('Expenditure', fontsize=20)
ax.set_title('Project FInancial Positions %s' % dt)
ax.grid(True)
canvas=FigureCanvas(fig)
response=HttpResponse(content_type='image/png')
canvas.print_png(response)

هذا الموضوع كان مفيدا, ولكن لا يمكن الحصول على حل مشكلتي: Matplotlib:أسطورة لا يتم عرض بشكل صحيح

هل كانت مفيدة؟

المحلول

ربما هذا على سبيل المثال مفيد.

في عام البنود في أسطورة ترتبط مع بعض نوع من رسم كائن.على scatter وظيفة/طريقة يعامل جميع الدوائر ككائن واحد ، انظر:

print type(ax.scatter(...))

وبالتالي الحل هو إنشاء كائنات متعددة.ومن ثم الدعوة scatter عدة مرات.

للأسف الإصدار الأحدث من matplotlib لا يبدو أن استخدام مستطيل في أسطورة.وبالتالي فإن أسطورة كبيرة جدا تحتوي على الدوائر ، منذ أن زيادة حجم مؤامرة مبعثر الكائنات.

أسطورة وظيفة markerscale الكلمة حجة على التحكم في حجم أسطورة العلامات ، ولكن يبدو أن تكون مكسورة.

تحديث:

على أسطورة دليل توصي باستخدام الوكيل الفنان في حالات مماثلة.على اللون API ويوضح صالح fc القيم.

p1 = Rectangle((0, 0), 1, 1, fc="b")
p2 = Rectangle((0, 0), 1, 1, fc="g")
p3 = Rectangle((0, 0), 1, 1, fc="r")
legend((p1, p2, p3), ('proj1','proj2','proj3'))

للحصول على الألوان المستخدمة سابقا في مؤامرة تستخدم المثال أعلاه مثل:

pl1, = plot(x1, y1, '.', alpha=0.1, label='plot1')
pl2, = plot(x2, y2, '.', alpha=0.1, label='plot2')
p1 = Rectangle((0, 0), 1, 1, fc=pl1.get_color())
p2 = Rectangle((0, 0), 1, 1, fc=pl2.get_color())
legend((p1, p2), (pl1.get_label(), pl2.get_label()), loc='best')

هذا المثال سوف تجعل قطعة مثل:

Matplotlib with custom legend

نصائح أخرى

وإلقاء نظرة إلى هذا:

http://matplotlib.sourceforge.net/api/pyplot_api هتمل # matplotlib.pyplot.legend

وعلى أمل أن يساعد. إن لم يكن مجرد طلب المزيد:)

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top