اذهب إلى المحتوى

السؤال

نشر

أريد وضع تعليق بجانب كل نقطة من نقاط البيانات في ال plot على سبيل المثال لدي الرسم التالي:

import matplotlib.pyplot as plt
fx = [2.1252, 3.5534, 4.3552, 6.3418, 1.055]
x = [0.2, 0.28, 0.56, 0.599, 0.80]
annotate = ["Syria", "Turkia", "USA", "Qatar", "Polnda"]
fig, ax = plt.subplots()
ax.scatter(x, fx)

والشكل المقابل:
index.png.14d7c02b908615205b1073a899a142f4.png
أريد أن أضع بجانب كل نقطة من نقاط البيانات أعلاه القيمة التي تقابلها من القائمة annotate.
 

Recommended Posts

  • 1
نشر

يمكننا القيام بذلك من خلال الدالة annotate حيث أنها مخصصة للقيام بهذه المهمة بالشكل التالي:

import matplotlib.pyplot as plt
fx = [2.1252, 3.5534, 4.3552, 6.3418, 1.055]
x = [0.2, 0.28, 0.56, 0.599, 0.80]
annotate = ["Syria", "Turkia", "USA", "Qatar", "Polnda"]
fig, ax = plt.subplots()
ax.scatter(x, fx)
# annotate نقوم بالمرور على القائمة
for i, txt in enumerate(annotate):
    # نقوم بإضافة التعليق المقابل لكل نقطة بيانات من القائمة بالترتيب
    # txt هي التعليق
    # (x[i], fx[i]) هما إحداثيات نقطة البيانات
    ax.annotate(txt, (x[i], fx[i]))
plt.show()

index.png.a0a34c6c9539e2b0ec5a4a08a95cc9e1.png

  • 0
نشر

بجانب طريقة علي، يمكنك استخدام pyplot.text ايضا لفعل هذا، أنظر هذا الكود لشرح الفكرة:

def plot_embeddings(M_reduced, word2Ind, words):

    for word in words:
        x, y = M_reduced[word2Ind[word]]
        plt.scatter(x, y, marker='x', color='red')
        plt.text(x+.03, y+.03, word, fontsize=9)
    plt.show()
#وضع النقاط
M_reduced_plot_test = np.array([[1, 1], [-1, -1], [1, -1], [-1, 1], [0, 0]])
word2Ind_plot_test = {'test1': 0, 'test2': 1, 'test3': 2, 'test4': 3, 'test5': 4}
#الكلمات المراد وضعها
words = ['test1', 'test2', 'test3', 'test4', 'test5']
plot_embeddings(M_reduced_plot_test, word2Ind_plot_test, words)

ويكون الشكل كالتالي:2WD5m.png.805a66af01d3834009eb1fdb395bb9a1.png

اما اذا أردت تطبيقه على حالتك يمكنك استبدال الكلمات بالشكل الذي تريد والنقاط بنقاطك التي تريد رسمها فقط.

 

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...