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

وضع نص بجانب كل نقطة بيانات ضمن ال plot في Matplotlib

Ali Ismael

السؤال

أريد وضع تعليق بجانب كل نقطة من نقاط البيانات في ال 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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...