ارسم أسهمًا رأسية لنقاطي
-
21-12-2019 - |
سؤال
أحاول اكتشاف طريقة لإضافة سهم رأسي يشير لأعلى لكل نقطة من نقاط البيانات الخاصة بي.لدي مؤامرة مبعثرة ورمز أدناه.أحتاج إلى أن تبدأ الأسهم الرأسية من النقاط التي تصعد للأعلى بطول حوالي 0.2 في مقياس الرسم البياني.
import matplotlib.pyplot as plt
fig = plt.figure()
a1 = fig.add_subplot(111)
simbh = np.array([5.3, 5.3, 5.5, 5.6, 5.6, 5.8, 5.9, 6.0, 6.2, 6.3, 6.3])
simstel =np.array([10.02, 10.08, 9.64, 9.53, 9.78, 9.65, 10.05, 10.09, 10.08, 10.22, 10.42])
sca2=a1.scatter(simstel, simbh )
المحلول
النهج الأخرى المقدمة رائعة.أنا ذاهب لجائزة القراصنة اليوم:
giveacodicetagpre.
نصائح أخرى
هذا مخترق بعض الشيء، اضبطه arrow_offset
و arrow_size
حتى يبدو الرقم صحيحا.
import matplotlib.pyplot as plt
fig = plt.figure()
a1 = fig.add_subplot(111)
simbh = np.array([5.3, 5.3, 5.5, 5.6, 5.6, 5.8, 5.9, 6.0, 6.2, 6.3, 6.3])
simstel =np.array([10.02, 10.08, 9.64, 9.53, 9.78, 9.65, 10.05, 10.09, 10.08, 10.22, 10.42])
sca2=a1.scatter(simstel, simbh, c='w' )
arrow_offset = 0.08
arrow_size = 500
sca2=a1.scatter(simstel, simbh + arrow_offset,
marker=r'$\uparrow$', s=arrow_size)
يمكن القيام بذلك مباشرة
giveacodicetagpre.
كان هناك بعض الغرابة في كيفية تنفيذ هذه الأسهم حيث تغيرت الدلالات بحيث "Lolims" تعني "نقطة البيانات هي الحد الأدنى" و "uplims" يعني "نقطة البيانات هي القيمة القصوى".
هذا ليس أنيقا جدا، لكنه يفعل الخدعة
للحصول على الأسهم تبدأ عند نقطة البيانات وترتفع 0.2 وحدة:
giveacodicetagpre.
لا تنتمي إلى StackOverflow