Gelişmiş matplotlib çiziminin ayrıntılı açıklaması

Gelişmiş matplotlib çiziminin ayrıntılı açıklaması

Metni girin

Bir, matplotlib'in grafik yapısı

Matplotlib'in çizim mimarisi hakkında zaten yazmıştım.Genellikle iki yolumuz var: Birincisi, "sanatçı" gibi "nesneye yönelik" fikirle katman katman resim çizmek, ikincisi ise komut dosyası çizimi. Çizim fikri basittir, ancak kodun sertliği güçlü değildir.Çok kapsüllü olduğu için ikisini de çizmek için birleştirebiliriz.Genellikle matplotlib çizim yöntemini açıklayan birçok makale görüyoruz. Bildiğim halde açıklamanın net olmadığını hissediyorum. Ne yaptım ama neden yaptığımı bilmiyorum, bu yüzden kendime bir makale yazmak için biraz zaman ayırdım. (Diğer blog gönderimi görebilirsiniz: matplotlib tutorial-matplotlib software architecture

Ne tür bir çizim kullanılırsa kullanılsın, belirli çizim adımlarını takip ederiz ve ilk olarak ne yaptığımız ve yaptığımız şey organize ve anlaşılması kolay olacaktır.

Matplotlib'in figür yapısı

Matplotlib'in grafik bileşimi

1.1

C # 'ın grafik çizim kontrolünün kullanımına aşinaysanız, buna aşina olmalısınız.Matplotlib'in grafikleri, aşağıdaki şekilde gösterildiği gibi, tabloya benzer bir yapıya sahiptir:

Yukarıdaki yapısal kompozisyon diyagramından da görülebileceği gibi, bir görüntünün katmanlı bir iç içe yerleştirilmiş kompozisyon yapısı, önce ana hatları ve daha sonra belirli ayarları vardır.Bu düşünceye göre, çizilen resme rastgele ve dağınık olmaktansa bakmak daha iyidir. Kurmak.

Matplotlib'in figür yapısı

Matplotlib'in çizim süreci

1.2

Yukarıdaki çizim sürecine göre, genellikle gördüğümüz bazı ana ayarlar temelde dahil olacak ve gözden kaçmayacak ve dağınık olmayacak.

Sonraki

İkincisi, matplotlib'in çizim adımları

matplotlib çizim adımları

matplotlib grafikler ve alt grafikler oluşturur

2.1

2.1.1 Grafik oluşturma

f = plt.figure (num = 2, figsize = (16,12), dpi = 80, facecolor = "pink", edgecolor = 'green', frameon = True)

#print (plt.setp (f)) # Kaç parametrenin ayarlanabileceğini ve hangilerinin olduğunu kontrol etmek için bu yöntemi kullanın.

Not:

(1) Döndürülen f, o resimdeki birinci düzey nesneye karşılık gelen toplam görüntüyü ifade eder.

(2) Num'un varsayılan değeri 1'dir ve açılır grafik penceresinin sol üst köşesinde Şekil 2'dir.

(3) Tüm grafiklerin genel başlığını ayarlayın: f. Başlık ('toplam başlık') Bu, üstte görüntülenen tüm alt resimler için genel başlık setidir.

(4) İkinci cümlede, hangi parametrelerin ayarlanabileceğini kontrol edebilirsiniz.

2.1.2 Alt grafikler oluşturmanın çeşitli yolları

fig1 = plt.subplot (1,2,1) # plt ile oluştur

fig2 = f.add_subplot (1,2,2) # Genel harita tarafından döndürülen f nesnesi

# Ayrıca gridspec () de kullanılabilir # Önce tartışmayın

Not:

(1) Burada döndürülen şekil, aslında yukarıdaki yapıdan oluşan şeklin ikinci katmanı olan bir Asex nesnesidir.

(2) Yukarıdakiler aslında Asex nesneleridir, ancak yukarıda oluşturulan Eksenler genellikle düzenli olarak düzenlenir ve belirli düzenleme, üç parametre ile belirlenir, yani hangi satır ve sütun ve tablo belirtimi tabloyu takip etmek için kullanılabilir. Herhangi bir konumda yeni bir Eksen düzenlemek isterseniz, aşağıda gösterildiği gibi yeni bir fig oluşturmak için aşağıdaki iki yöntemi de kullanabilirsiniz:

fig3 = f.add_axes (, facecolor = 'grey')

fig4 = plt.axes (, facecolor = 'yeşil')

Not:

Yukarıdaki iki yöntem hala Axes nesnesini döndürür, ancak önceki yöntemlerle karşılaştırıldığında, Axes'ın konumu daha keyfi, keyfi olarak yerleştirilir, yukarıdaki dört değerin tümü "görelidir Değer ", yani 0 ile 1 arasındadır, ilk ikisi sol alt köşeyi temel alır ve son iki sayı, tüm şekil nesnesinin genişliğini ve yüksekliğini ifade eder.

Aslında, görüntüyü özelleştirmemiz esas olarak ikinci seviye nesne Axes ve onun alt nesnelerinin ayarıdır.İkinci seviye nesnede bulunan nesneler bazı ortak nesneleri içerir:

a, iki koordinat ekseni x ekseni y ekseni ve koordinat ekseni başlığı

b, Başlık

c. Resim (çizgi eğrisi vb.)

d, Gösterge

e, Izgara

f, Metin

g, Ek Açıklama

Bekleyin, aşağıdakiler bu sırayla açıklanacaktır.

Ek: gridspec düzen alt haritasının konumu, aşağıdaki kod:

G = matplotlib.gridspec.GridSpec (3,3)

fig1 = f.add_subplot (G, facecolor = 'kırmızı')

fig2 = f.add_subplot (G, facecolor = 'pembe')

fig2 = f.add_subplot (G, facecolor = 'blue')

fig2 = f.add_subplot (G, facecolor = 'gray')

fig2 = f.add_subplot (G, facecolor = 'yeşil')

Sonuçlar aşağıdaki gibidir:

matplotlib çizim adımları

Matplotlib çiziminin beş temel modülü

2.2

Gösterge, başlık, koordinat başlığı, ızgara, görüntü belirleme-beş çekirdek modül

Bu bölüm, çizim sürecindeki beş çekirdek modülün uygulanması ve tasarımından bahsediyor. Yukarıdaki akış şemasına karşılık gelir. Çizim yaparken, ya "nesneye yönelik" fikrini belirlemek için kullanabiliriz ya da ilgili parametreleri belirlemek için komut dosyalarını kullanabiliriz. .

2.2.1 Koordinat eksenleriyle ilgili ayarlar

# (1) Görüntüleme aralığı: fig1.axis () plt.axis () # (2) Sırasıyla x ve y ekseninin görüntüleme aralığını ayarlayın: fig1.set_xlim (2,4) fig1.set_ylim (2,4) plt.xlim (2,4) Plt.ylim (2,4) # (3) Ölçeği ayarlayın: fig1.set_yticks () fig1.xaxis.set_ticks () # x # Bu iki yöntem yalnızca dijital ölçeği ayarlayabilir plt.xticks (,, Fontsize = 'xx-large') # Bu yöntem, karşılık gelen sayıyı bir dizeyle değiştirebilir # , gibi bazı özel matematiksel sembolleri görüntülemek istiyorsanız, plt.xticks (, , Yazı tipi boyutu = 'xx-large') # Bu yönteme LaTeX sözdizimi adı verilir # (4) Koordinat ekseni görüntüsü ve hareketi # Varsayılan koordinat ekseninde dört, yukarı, aşağı, sol ve sağ bulunur. # Bir Eksen zuobiao_zhou = plt.gca () göstermiyor # Eksen tutamacını alın, bu bir yoldur zuobiao_zhou.spines.set_color ('none') zuobiao_zhou_01 = fig1.axes # Başka bir eksen nesnesini alın Tek yol zuobiao_zhou_01.spines.set_color ('yok') # (b) Onay işaretini hangi eksenin yanında görüntülenecek zuobiao_zhou_01.yaxis.set_ticks_position ('sağ') zuobiao_zhou.xaxis.set_ticks_position ('top') # (5 ) Ana-ikincil ekseni fig2 = f.add_subplot (1,2,2) line2, = plt.plot (,, marker = ' > ', label =' ilk düz çizgi ') # plt.title (' İki düz çizgi birleştirilmiş ') #title fig2.legend (loc = 2) # fig2.set_xlabel (' yatay koordinat ') # Koordinatı ayarlayın fig2. set_ylabel ('Dikey koordinat bir') # ----------------------------------------- ------------------ Yukarıdakiler birincil koordinat sistemidir fig3 = fig2.twinx () # İkizler için, ikincil koordinat eksenini line3 = plt.plot (, label = 'saniye Düz bir çizgi ') fig3.legend (loc = 1) fig3.set_ylabel (' ordinate two ') # --------------------------- --------------------------------- İkincil koordinat sistemi plt.grid () #Grid plt.show ()

Master-slave koordinat sistemini kullanırken, plt kullanmak yerine "nesne yönelimli" düşünmeyi kullanmak en iyisidir, bu nedenle ilgili şeyler için hangi Eksenlerin ayarlandığını karıştırmak kolaydır.

2.2.2 Görüntü çizgileriyle ilgili ayarlar

# (1) Kenar yumuşatmayı kapat

line1.set_antialiased (Yanlış)

# (2) Çizgi stili dört ayar yöntemlerinin çeşitli ayarları

# Yöntem 1: Çizgiyi çizerken doğrudan "dize parametresi" aracılığıyla belirtin

line1, = fig1.plot (x, y, 'r-') #Basit ayarlar şu şekilde kullanılabilir

# Yöntem 2: Aşağıdaki gibi, işaretleme sırasında doğrudan parametreler aracılığıyla belirtin:

line1, = fig1.plot (x, y, color = 'red', linewidth = 3, linestyle = '-')

# Yöntem 3: Aşağıdaki gibi line.set_xxxx () ile ayarlayın:

line1, = fig1.plot (x, y1)

line1.set_color ('siyah')

line1.set_linestyle ('-')

line1.set_alpha (0.3)

line1.set_linewidth (8)

#Method Four: plt.setp (line, xxxxxxxxx) yöntemiyle ayarlayın

plt.setp (line1, color = 'black', linewidth = 8, linestyle = '-', alpha = 0.3)

'' 'İki, üç veya dört yöntemin kullanılması önerilir.

Çizgi stilini ayarlamak için birçok özellik olduğunu ve bunları aşağıdaki şekillerde görüntüleyebileceğimizi unutmayın '' '

Yazdır (plt.setp (satır)) # Hangi niteliklerin ayarlanabileceğini gösterecek

# (3) Aşağıdakiler ortak özellik ayarlarıdır:

'' 'Ortak renkler: - Harfleri kullanmaya ek olarak, "# 008000" gibi onaltılık dize gösterimini de kullanabilirsiniz, böylece herhangi bir renk kullanılabilir.

'b' 'mavi

'g' 'yeşil

'r' 'kırmızı

"'c" camgöbeği (camgöbeği)

'm' 'macenta (macenta)

"'y', sarı

"'k' '' siyah

"'w' 'beyaz

Yaygın hat türleri:

`` '' '' düz çizgi stili

`` '-' 'kesikli çizgi stili

'' -. '' '' nokta-nokta çizgi stili

`` ':' `` noktalı çizgi stili

Ortak nokta işaretçileri:

"." noktası işaretçisi

',' piksel işaretçisi

'o' daire işaretçisi

'v' triangle_down işaretçisi

'^' triangle_up işaretçisi

' < 'triangle_leftmarker

' > 'triangle_rightmarker

'1' tri_down işaretçisi

'2' tri_up işaretçisi

'3' tri_left işaretçisi

'4' tri_right işaretçisi

's' kare işareti

'p' beşgen işareti

'*' yıldız işareti

"h" altıgen1 işaretçisi

'H' hexagon2 işaretçisi

'+' artı işaretçisi

'x' x işaretçisi

'D' elmas işaretleyici

'd' thin_diamond işaretçisi

'|' vline işaretçisi

'_' hline

'' '

2.2.3 Gösterge ile ilgili ayarlar

# (1) Açıklamayı oluşturmanın birkaç yolu

# Yöntem 1: Çizgiyi çizerken etiketi ayarlayın ve açıklama işlevini çağırın.

# Yöntem İki:

line1.set_label ("Sinüs eğrisi") # Açıklamayı belirle

fig1.legend (, loc = 'sol üst')

# Yöntem Üç:

açıklama ((satır1, satır2, satır3), ('etiket1', 'etiket2', 'etiket3'))

# (2) açıklama () açıklamada gösterilen konum

# 3 loc: göstergenin konumunu gösterir

'' '=============== ==============

Konum Dizesi Konum Kodu

=============== =============

'en iyi' 0

"sağ üst" 1

"sol üst" 2

"sol alt" 3

"sağ alt" 4

'sağ' 5

"sol orta" 6

'sağ orta' 7

"alt orta" 8

"üst orta" 9

'merkez' 10

(4) Diğer parametre ayarları

facecolor = 'yeşil',

edgecolor = "siyah"

frameon = Doğru,

shadow = Doğru,

framealpha = 0.5,

fontsize = 'xx-large'

ve daha fazlası

'' '

2.2.4 Başlıkla ilgili ayarlar

'' '

(1) İki ayar yöntemi

Yöntem 1: fig1.set_title ("Bu ilk resimdir") # Başlığı ayarlayın

Yöntem 2: plt.title ('Bu ikinci resimdir')

(2) Diğer parametrelerin ayarlanması

loc: {'center', 'left', 'right'}, başlık görüntüsünün konumunu ayarlayın

pad: float, başlığın görüntünün üst kenarından ne kadar uzakta olduğunu ayarlar

yazı tipi boyutu: "xx-large" gibi yazı tipi boyutunu ayarlayın

color = 'red' yazı tipi rengini ayarla

'' '

2.2.5 Izgara ile ilgili ayarlar

'' '

hangi = 'büyük', birincil koordinatları veya ikincil koordinatları verir

eksen = 'x', yalnızca hangi ekseni veya her ikisini gösterir

renk = 'r', renk

linestyle = '-', çizgi stili

linewidth = 2 çizgi kalınlığı

'' '

Bu bölümün özeti

Bu bölüm ağırlıklı olarak grafik çizmek için matplotlib kullanırken vazgeçilmez olan beş modülü tanıtır Genel olarak bir resim çizdiğimizde böyle bir modüle göre bir resim çizeriz ve onu kaçırmayız, nettir ve daha güzel grafikler çizebiliriz.

Sonraki

Üç, matplotlib metni ve yorumlar

Yukarıdaki beş temel modül olmasına rağmen, bazen bir resim çizerken, metin ve açıklama kullanımını gerektiren grafik için bazı temel notların ve işaretlerin yapılması gerekir.

matplotlib metin ve yorumlar

matplotlib metin Metin

3.1

# Her iki ayar yöntemi de mevcuttur, yani

#method one:

şek.text (x, y, s)

# Yöntem İki:

plt.text (x, y, s).

Bunlar arasında, x, y metnin eklendiği konumu temsil eder, s metnin içeriğini temsil eder ve bazı yaygın isteğe bağlı parametreler aşağıdaki gibidir:

Alfa = 0.5

renk = 'yeşil',

backgroundcolor = "sarı"

fontsize = 15, (boyut olarak kısaltılabilir)

fontstyle = 20 (stil olarak kısaltılabilir)

rotasyon = '60 ', metnin kaç derece döndürüldüğünü gösterir

yazı tipi ağırlığı = 'kalın', (ağırlık olarak kısaltılabilir) değer (normal kalın ağır hafif ultra hafif) olabilir

family = "serif" yazı tipi

satır alanı = 1.5 yazı tipi satır aralığı

horizontalalignment = 'center' x parametresiyle temsil edilen konum (ha olarak da kısaltılır) (orta sağ sol)

verticalalignment = "center" y parametresinin temsil ettiği konum (kısaca va) (orta üst alt taban çizgisi) olabilir

multialignment = 'center' Çok satırlı pozisyon kontrolü, değer (orta sağ sol) olabilir

Not: Son üç parametre, yerleşim düzeninin kontrolünden sorumludur '' '

# (1) bbox'ı ayarlayarak tamamlanan metnin kenarlığını ayarlayın

#method one:

bbox_props = dict (boxstyle = "rarrow", fc = "kırmızı", ec = "0.5", alpha = 0.9, pad = 0.6)

plt.text (parametre listesi, bbox = bbox_props) bbox parametreleri ayarlanarak tamamlanır,

# Yöntem İki:

text_01 = plt.text () #İlk olarak metin nesnesini döndürür

Text_01.set_bbox1 (bbox_props)

Not: bbox, sözlük türü parametrelerini kabul eder. Kutu stilinin kenarlığın stilini temsil ettiği sözlükte kenarlık niteliklerini ayarlayın. Yuvarlatılmış dikdörtgenleri temsil eden iki genel tur vardır ve sağ oku temsil eden dar da vardır. Larrow ( Sol oku temsil eder) yuvarlak4 yuvarlak dişli testere dişi kare, daire aslında bir sınıfa karşılık gelir,

matplotlib metin ve yorumlar

Matplotlib ek açıklaması

3.2

# Her iki ayar yöntemi de mevcuttur, yani

#method one:

fig.annotate (s, xy = (3,4), xytext = (3,6))

# Yöntem İki:

plt. annotate (s, xy = (3,4), xytext = (3,6))

Bunlar arasında, xy yorumun eklendiği konumu, s metnin içeriğini ve xytext yorum metninin konumunu temsil eder ve bazı yaygın isteğe bağlı parametreler aşağıdaki gibidir:

Yaygın olarak kullanılan diğer bazı parametreler aşağıdaki gibidir:

: Ok tarafından kullanılan koordinat sistemi

şeklin sol alt köşesinden pikselleri biçimlendirin pikselleri şeklin sol alt köşesinden pikselleri biçimlendirin sol alt 'eksenlerin sol alt köşesinden noktaların noktaları' eksenlerin 'eksenlerinin' piksellerinin 'sol alt köşesinden pikseller eksen 'eksen kesri' sol alt veriden 'eksenlerin fraksiyonu' açıklamalı nesnenin koordinat sistemini kullanır (varsayılan) 'kutupsal' (teta, r) yerel veri 'koordinatları değilse metin koordinatları: metin' ofset noktaları tarafından kullanılan koordinat sistemi xy değerinden offset (nokta cinsinden) 'offsetpixels' ofset (piksel cinsinden) xy değeri varsayılanlarından xycoords girişine (varsayılan, xycoords ile aynıdır) bbox: Yukarıdaki metinle aynı olan açıklama metninin kenarlığını ayarlayın. arrowprops: Ok stili ayarı, sözlük tipi genişliğinde olmalıdır, nokta cinsinden okun genişliği, kafa genişliğinde, ok başının tabanının genişliği, nokta cinsinden, ok başının uzunluğu, noktalardaki ok başının uzunluğu, toplam uzunluğun 'daralmasına' kadar biter renk seti renk ok stili seti ok stili bağlantı stili seti ok ve metin bağlantı stili bağlantı stili olabilir (açı açısı3 ark arc3 bar) ok stili olabilir ('-''- > '' -
numpy advanced tutorial np.where ve np.piecewise
önceki
Koleksiyonda 5.000'den fazla antik kitapla, Zhongshan'ın gizli topluluğundaki halka açık kitap dükkanının hikayesi nedir?
Sonraki
Makine öğrenimi hakkında bilmeniz gereken 3 popüler profesyonel terim
GitHub'da yüz teknolojisi ile ilgili kaynakların tanınması, tespiti, kalibrasyonu, yeniden yapılandırılması, oluşturulması vb.
Pazarın başı dertte değil, insanların kalbinde
Öğretmen tarafından özenle seçilmiş 8 iyi kitap, herkes dikkatlice okuyabilir (ayrıca bir PDF e-kitap hediyesi de vardır)
"My Boy 2" Olimpiyat şampiyonunu tekrar karşılıyor, Wu Dajing ilk olarak aşk hayatından bahsediyor
SpringCloud Dağıtılmış SpringCloud 2.x Serisi SpringSession Oturumu
Spring Cloud 2.x serisinin bahar bulutunda yay önbelleği nasıl kullanılır
Kadın net kırmızı çiçek 30 bin burun estetiği ameliyatı sonrası çirkin arkadaşlar tarafından güldü, öfkeyle açığa çıktı: düğün randevum ertelendi
Spring Cloud 2.x serisi devre kesici kümesi izleme Tur.
Wu Xin, bir takım elbise ve güneş gözlüğü, havalı ve şık bir şekilde günlük giyimini paylaşıyor
SpringCloud2.x serisinin Springboot entegrasyonu F
Yetmiş yaşındaki adam drone aksesuarlarını çaldı ve satmak istedi
To Top