Python'da histogramı nasıl çizeceğinizi öğretin: aslında histogramdan tamamen farklıdır

Kaynak: Büyük Veri DT

Bu makale hakkında 2000 kelime , Okumanız tavsiye edilir 5 dakika

Bu makale size Python'da bir histogram çizmeyi öğretir.

Hem histogram hem de histogram çok yaygındır ve veri analizinde yaygın olarak kullanılan çizelgelerdir.İkisi görünüş olarak çok benzer göründüğünden bazı karışıklıklara neden olması kaçınılmazdır. Bugün histogram hakkında konuşacağız.

01 Genel Bakış

Histogram, şekil olarak histograma benzer ancak histogramdan tamamen farklı bir anlama sahiptir. Histogram, istatistiksel kavramları içerir, Önce verileri gruplayın ve ardından her gruptaki veri öğelerinin sayısını sayın. Dikdörtgen bir koordinat sisteminde, yatay eksen her grubun bitiş noktalarını işaretler, dikey eksen frekansı temsil eder ve her dikdörtgenin yüksekliği karşılık gelen frekansı temsil eder Böyle bir istatistiksel grafiğe frekans dağılım histogramı denir.

Frekans dağılımı histogramı, her bir grubun sayısını elde etmek için frekansı grup mesafesiyle çarpma hesaplama işlemini gerektirir. Aynı histogramın grup mesafesi sabit bir değerdir, bu nedenle sayı doğrudan dikey eksenle temsil ediliyorsa, her dikdörtgen Yüksek değeri, yalnızca dağıtım durumunu değişmeden tutmakla kalmayıp, aynı zamanda Şekil 2-58'de gösterildiği gibi her bir grubun sayısını görsel olarak görebilen karşılık gelen veri öğelerinin sayısını temsil eder.

Şekil 2-58 Histogram

Histogram aracılığıyla, hangi verilerin yoğunlaştığını ve anormal veya izole verilerin nerede dağıtıldığını da gözlemleyebilir ve tahmin edebilirsiniz.

İlk önce aşağıdaki temel kavramları anlayın.

  • Grup sayısı : İstatistiksel verilerde, verileri farklı aralıklara göre birkaç gruba ayırırız ve bölünen grupların sayısına grup sayısı denir.
  • Grup konuşması : Her grubun iki uç noktası arasındaki fark.
  • Sıklık : Gruptaki veri öğelerinin sayısının grup mesafesine bölümü.

02 Örnekler

Histogram kodunun bir örneği aşağıda gösterilmiştir.

  • Kod örneği 2-45
1plot = şekil (plot_width = 300, plot_height = 300) 2plot.quad (üst =, alt =, sol =, 3 sağ =, renk = "# B3DE69") 4 gösteri (arsa)

Çalışma sonucu Şekil 2-59'da gösterilmektedir.

Şekil 2-59 Kod örneği 2-45 çalışan sonuçlar

Kod örneği 2-45'in ikinci satırı, dikdörtgenin dört kenarını tanımlayarak bir histogram çizmek için quad () yöntemini kullanır Spesifik parametreler aşağıda açıklanmıştır.

p .quad (sol, sağ, üst, alt, ** kwargs) parametre açıklaması.

  • ayrıldı (: class: `~ bokeh.core.properties.NumberSpec`): x eksenindeki histogramın sol sınırı
  • sağ (: class: `~ bokeh.core.properties.NumberSpec`): histogramın x ekseninin sağ sınırı
  • üst (: class: `~ bokeh.core.properties.NumberSpec`): histogram y ekseninin üst sınırı
  • alt (: class: `~ bokeh.core.properties.NumberSpec`): histogram y ekseninin alt sınırı

Diğer parametrelerin açıklaması (** kwargs).

  • alfa (kayan) : Tüm satırların şeffaflığını aynı anda ayarlayın
  • renk (Renkli) : Tüm çizgilerin rengini tek seferde ayarlayın
  • kaynak (ColumnDataSource) : Bokeh benzersiz veri formatı (Pandas Dataframe'e benzer)
  • l egend (str) : İlkel efsane
  • x_range_name (str) : x ekseni aralığı adı
  • y_aralık_adı (dizi) : y ekseni aralığı adı
  • düzey (Enum) : İlkel oluşturma düzeyi

Kod örneği 2-46

Np olarak 1import numpy 2import scipy.special Bokeh.layouts'tan ızgara grafiğini içe aktarın 4 # Çizim fonksiyonu 5def make_plot (başlık, geçmiş, kenarlar, x, pdf, cdf): 6 p = şekil (başlık = başlık, araçlar = '', background_fill_color = "# fafafa") 7 p.quad (üst = geçmiş, alt = 0, sol = kenarlar, sağ = kenarlar, 8 fill_color = "lacivert", line_color = "beyaz", alfa = 0,5) 9 p.line (x, pdf, line_color = "# ff8888", line_width = 4, alpha = 0.7, legend = "PDF") 10 p.line (x, cdf, line_color = "turuncu", line_width = 2, alpha = 0.7, lejand = "CDF") 1112 p.y_range.start = 013 p.legend.location = "center_right" 14 p.legend.background_fill_color = "#fefefe" 15 p.xaxis.axis_label = 'x' 16 p.yaxis.axis_label = 'Pr (x)' 17 p.grid.grid_line_color = "beyaz" 18 dönüş p 19 # Normal dağılım 20mu, sigma = 0, 0.521 ölçülen = np.random.normal (mu, sigma, 1000) 22hist, kenarlar = np.histogram (ölçülen, yoğunluk = Doğru, bölmeler = 50) 23x = np.linspace (-2, 2, 1000) 24 # Uyum eğrisi 25pdf = 1 / (sigma * np.sqrt (2 * np.pi)) * np.exp (- (x-mu) ** 2 / (2 * sigma ** 2)) 26cdf = (1 + scipy.special.erf ((x-mu) /np.sqrt (2 * sigma ** 2))) / 227p1 = make_plot ("Normal Dağılım ( = 0, = 0.5)", geçmiş, kenarlar, x, pdf, cdf) 28 # Lognormal dağılım 29mu, sigma = 0, 0.530 ölçülen = np.random.lognormal (mu, sigma, 1000) 31hist, kenarlar = np.histogram (ölçülen, yoğunluk = Doğru, bölmeler = 50) 32x = np.linspace (0.0001, 8.0, 1000) 33pdf = 1 / (x * sigma * np.sqrt (2 * np.pi)) * np.exp (- (np.log (x) -mu) ** 2 / (2 * sigma ** 2)) 34cdf = (1 + scipy.special.erf ((np.log (x) -mu) / (np.sqrt (2) * sigma))) / 235p2 = make_plot ("Günlük Normal Dağılımı ( = 0, = 0.5)", geçmiş, kenarlar, x, pdf, cdf) 36 # Gama dağılımı 37k, teta = 7,5, 1,038 ölçülen = np.random.gamma (k, theta, 1000) 39hist, kenarlar = np.histogram (ölçülen, yoğunluk = Doğru, bölmeler = 50) 40x = np.linspace (0.0001, 20.0, 1000) 41pdf = x ** (k-1) * np.exp (-x / theta) / (theta ** k * scipy.special.gamma (k)) 42cdf = scipy.special.gammainc (k, x / theta) 43p3 = make_plot ("Gama Dağılımı (k = 7,5, = 1)", geçmiş, kenarlar, x, pdf, cdf) 44 # Weber dağılımı 45lam, k = 1, 1,2546 ölçülen = lam * (- np.log (np.random.uniform (0, 1, 1000))) ** (1 / k) 47hist, edge = np.histogram (ölçülen, yoğunluk = True, bin = 50) 48x = np.linspace (0.0001, 8, 1000) 49pdf = (k / lam) * (x / lam) ** (k-1) * np.exp (- (x / lam) ** k) 50cdf = 1-np.exp (- (x / lam) ** k) 51p4 = make_plot ("Weibull Dağılımı ( = 1, k = 1.25)", geçmiş, kenarlar, x, pdf, cdf) 52 # ekran 53show (gridplot (, ncols = 2, plot_width = 400, plot_height = 400, toolbar_location = Yok))

Çalışma sonucu Şekil 2-60'da gösterilmektedir.

Şekil 2-60 Kod örneği 2-46 çalışan sonuçlar

Kod örneği 2-46, satır 5, çizim fonksiyonunu özelleştirin make_plot (başlık, geçmiş, kenarlar, x, pdf, cdf), burada parametreler grafiğin başlığı, histogramın üst sınırı, sol ve sağ sınırlar, takılan eğrinin x koordinatı ve yöntemdir Dikdörtgenin dört kenarını tanımlayarak, PDF olasılık yoğunluk işlevidir ve CDF kümülatif dağılım işlevidir. Satır 53, bir seferde 4 grafiği (normal dağılım, lognormal dağılım, gama dağılımı, Weber dağılımı) görüntülemek için gridplot () yöntemini kullanır.

Yazar hakkında:

Bokeh alanında kıdemli bir Python mühendisi, uygulayıcı ve müjdeci olan Qu Xifeng'in Bokeh üzerine derinlemesine araştırması var. Flask, MongoDB, Sklearn ve diğer teknolojilerde iyi ve zengin pratik deneyim. Birden çok sütunun yazarını (Python Çin topluluğu, Python programcıları, büyük veri analizi ve madencilik) biliyorum ve sütun 100.000'den fazla kullanıcı biriktirdi.

Bu makale, yayıncının yetkisi altında yayınlanan "Python Veri Görselleştirme: Bokeh Tabanlı Görsel Çizim" den bir alıntıdır.

Editör: Yu Tengkai

Redaksiyon: Lin Yilin

-Bitiş-

Tsinghua-Qingdao Veri Bilimi Enstitüsü'nün resmi WeChat kamu platformunu takip edin " THU Veri Pastası "Ve kız kardeş numarası" Veri Pastası THU "Daha fazla ders avantajı ve kaliteli içerik elde edin.

Kutsal üç parçalı topolojik makine öğrenimi seti: Gudhi, Scikit-Learn ve Tensorflow!
önceki
"Sürü bağışıklığından" pişman mısınız? İngiliz resmi açıklaması: Bu bir amaç değil, bilimsel bir kavramdır!
Sonraki
Büyük veri teknolojisi altında kolej ve üniversitelerde uygulama odaklı yetenek eğitimi için müfredat sisteminin işletmelerin ihtiyaçlarına göre tasarlanması
"Jinan'ı Seçin, Geleceği Kazanın" Yüz Gün On Milyon Çevrimiçi İş Fuarı (15. oturum)
Boxing County Deneysel İlköğretim Okulu "Resimle Eşleştirdiğim En Güzel Çocuk Kafesi" konulu bir etkinlik düzenledi.
Restoranı kurtaran ve bir öğrenci yemekhanesine dönüştüren Taishan Bölgesi, öğrencilerin yemek yeme zorluklarını çözmek için "içeride ve dışarıda" yönetişim uygulayacak
Wuhan "Gün Batımını İzleyen Yaşlı Adam": Kızıma yeni tacın da bulaştığı ve bu fotoğrafı netizenlerle aynı gün gördü.
Laoshan bahar çayı on gün önce çıkarılıyor! Çay Dövüşü Yarışması gibi on büyük çay etkinliği katılmanızı bekliyor
Shandong'daki en yüksek bina 38 kata ulaştı ve Lixia Bölgesi'ndeki süper yüksek kulelerin inşaat "ivmesi" bitti
İlkbahar ekinoksundaki gün batımı kızıl gökyüzünü yansıtır
Suzhou Şehrinin liderleri başı çeker ve maskeyi çıkarır!
İlk metin sınıflandırma modelinizi oluşturmak için Pytorch'u kullanmayı öğretin!
Li Jingchun: Yeni çağda veriler, geleceği ve güvenlik güvencesinin gelişimini yönlendiriyor
Kod yağlı boyamaya dönüşür, saça iyi gelir, yalnızca HTML + CSS kullanılır ve sanat tasarımı da şaşırtıcı!
To Top