import pylab
import numpy
if __name__ == '__main__':
def sinc (x):
return numpy.sin (x) / x
xmin = -30.0
xmax = 30.0
dx = 0.01
x = numpy.arange (xmin, xmax, dx)
y = sinc(x)
pylab.plot (x, y)
selected_x = 7.7
selected_y = sinc (selected_x)
pylab.rc('font', family = 'verdana')
pylab.annotate (u'Очень важная точка',xy=(selected_x, selected_y)) pylab.show()
Natija funktsiya text ga o'xshaydi:
Izohni yanada qiziqarli qilish uchun biz ikkita nomlangan parametrni qo'shamiz:
• xytext - matnning koordinatalarini o'rnatadigan ikkita elementning birikmasi; ko'rsatgich o'qi xuddi shu nuqtadan boshlanadi;
• strelkalar - o'qning ko'rinishini belgilaydigan elementlarni o'z ichiga olgan lug'at.
Bir oz vaqt o'tgach, biz o'qlar lug'atida mumkin bo'lgan qiymatlarni batafsilroq ko'rib chiqamiz, ammo hozircha odatiy strelkalarimiz borligiga ishonch hosil qiling:
# -*- coding: UTF-8 -*-
import pylab
import numpy
if __name__ == '__main__':
def sinc (x):
return numpy.sin (x) / x
xmin = -30.0
xmax = 30.0
dx = 0.01
x = numpy.arange (xmin, xmax, dx)
y = sinc(x)
pylab.plot (x, y)
selected_x = 7.7
selected_y = sinc (selected_x)
pylab.rc('font', family = 'verdana')
arrowprops = {
'arrowstyle': '->',
}
pylab.annotate (u'Очень важная точка',xy=(selected_x, selected_y),
xytext = (selected_x + 2, selected_y + 0.1),
arrowprops = arrowprops)
pylab.show()
Endi diagramma bo'lgan oyna quyidagicha bo'ladi:
Agar biz Matplotlib-ning ichki tuzilishi haqida gapiradigan bo'lsak, unda annotatsiya funktsiyasi o'qlarni ko'rsatish uchun ikkita sinfdan birini ishlatadi: FancyArrowPatch, agar strelkalar lug'atida "strelka" tugmachasi (oldingi misolda bo'lgani kabi) yoki lug'atda bunday kalit bo'lmasa YAArrow sinfi mavjud. Menimcha, FancyArrowPatch yordamida chizilgan strelkalar sukut bo'yicha yanada jozibali ko'rinadi.
Ko'rsatkichlar lug'ati elementlaridan foydalanib, biz ko'p sozlamalarni FancyArrowPatch sinfiga o'tkaza olamiz. Ulardan ozginasini qisqacha ko'rib chiqing:
• strelka - strelkalar uslubini belgilaydi (mumkin bo'lgan qiymatlar ro'yxati quyida keltirilgan).
• connectionstyle - ko'rsatgich chizig'ini chizish usulini belgilaydi, u ikkita nuqtani to'g'ri chiziqda, yoyda bog'laydi yoki strelkalar koordinata o'qlariga parallel joylashgan singan segmentlardan iborat bo'lishi kerak. Ushbu parametrdan foydalanib, siz boshqa chiziq parametrlarini o'rnatishingiz mumkin.
• kenglik - chiziq qalinligini belgilaydi.
• linestyle - chiziq uslubini o'rnatadi. Mumkin bo'lgan qiymatlar: 'qattiq', 'dashdot', 'dashdot', '' nuqta '.
• mutation_scale - o'qning oxiridagi "bosh" hajmini belgilaydi.
Agar strelkalar lug'atida "strelka" tugmachasi bo'lmasa, o'qni ko'rsatish uchun YAArrow klassi ishlatiladi. Bu sinf o'qlar lug'atida quyidagi tugmachalardan foydalanadi:
• width - ko'rsatgich chizig'ining kengligini o'rnatadi.
• frak - ko'rsatkichning o'qning "boshini" egallashini ko'rsatadigan koeffitsient. Masalan, agar frac = 0,5 bo'lsa, u holda strelka uzunligining yarmini egallaydi.
• bosh kengligi - o'qning "boshi" kengligini belgilaydi.
Bundan tashqari, ishlatiladigan FancyArrowPatch / YAArrow sinfidan qat'i nazar, siz quyidagi parametrlarni belgilashingiz mumkin:
• color - ko'rsatgichning rangini belgilaydi.
• alfa - shaffoflik darajasini belgilaydi. 0 - to'liq shaffof, 1 - mutlaqo noaniq.
Agar strelka parametridan foydalansa, u o'qlarning ko'rinishini juda moslashuvchan qilish imkonini beradigan ArrowStyle sinfining namunasi bo'lishi mumkin yoki u oldindan belgilangan o'q uslublarini tavsiflovchi satr bo'lishi mumkin. String sifatida strelka quyidagi qiymatlarni olishi mumkin:
'-'
|
'->'
|
'-['
|
'-|>'
|
'<-'
|
'<->'
|
'<|-'
|
'-'
|
']-'
|
']-['
|
'fancy'
|
'simple'
|
'wedge'
|
'|-|'
|
Ushbu uslublarning ko'rinishini namoyish etish uchun quyidagi skript yozilgan:
# -*- coding: UTF-8 -*-
Do'stlaringiz bilan baham: |