point and figure chart yapmaya çalışıyorum. Terminalde yazdırmaya çalışabilirim ama matplotlib ile grafik oluşturmak istiyorum. Böyle bir şey yapmanın en iyi yolu ne olurdu? Dağınıklık düşünüyordum, ama bunu yaptığımda sütunlar çok uzaklara yayılıyor. Sütunların birbirine olabildiğince yakın olduğu yerde sağladığım bağlantıdan grafik gibi bir şey almak istiyorum. Bunu zorlamak için üzerine yazabileceğim bir parametre var mı? Matplotlib'i ilk kez kullandığınızda, lütfen bu önemsiz ise lütfen beni affedin. Teşekkürler.Matplotlib ile nokta ve şekil grafiği
cevap
Bir dağılım grafiğinde kullanılan simgelerin boyutunu s
parameter seçerek ayarlayabilirsiniz. Ayrıca, muhtemelen rakamınızın boyutunu (figsize ile) veya eksenlerinizin boyutlarını (add_axes ile) ayarlamanız gerekecektir. Bunun nedeni, scatter için sembollerin kare olması, görüntüleme birimlerinde olması ve x ve y eksenlerinin otomatik olarak ayarlanmamasıdır, böylece tek bir değişimin yüksekliği-bir-kutusudur.
Diğer bir deyişle, sağladığınız örnek, yükseklik> genişliğe sahip dikdörtgen bir çizimdir ve yükseklik ve genişlik, bir değişiklikten en fazla == yükseklik-bir kutuyu yapmak için seçilir. İşte
geçerli olan bu tekniklerin bir örnek:import matplotlib.pyplot as plt
BOX = 5
START = 365
changes = (8, -3, 4, -4, 12, -3, 7, -3, 5, -9, 3)
# one way to force dimensions is to set the figure size:
fig = plt.figure(figsize=(5, 10))
# another way is to control the axes dimensions
# for axes to have specific dimensions:
# [ x0, y0, w, h] in figure units, from 0 to 1
#ax = fig.add_axes([.15, .15, .7*.5, .7])
ax = fig.add_axes([.15, .15, .7, .7])
def sign(val):
return val/abs(val)
pointChanges = []
for chg in changes:
pointChanges += [sign(chg)] * abs(chg)
symbol = {-1:'o',
1:'x'}
chgStart = START
for ichg, chg in enumerate(changes):
x = [ichg+1] * abs(chg)
y = [chgStart + i * BOX * sign(chg) for i in range(abs(chg))]
chgStart += BOX * sign(chg) * (abs(chg)-2)
ax.scatter(x, y,
marker=symbol[sign(chg)],
s=175) #<----- control size of scatter symbol
ax.set_xlim(0, len(changes)+1)
fig.savefig('pointandfigure.png')
plt.show()
her dağılım grafiği için geliştirilen yöntem çok hackish olmakla kilit noktası ben dağılım
s
parametre ve şekil boyutuna oynamak için gerekli olmasıdır
İstediğiniz etkiden bir şey elde edin.
çıkan komplo:
İdeal olarak, bir dağılım yönteminin örnek alınarak özel bir yöntem olur. X'in, o ve ay etiketlerini içeren özel bir Collection
instance oluşturur. Ayrıca a) eksenleri/şekil yönünü otomatik olarak ayarlar veya b) asimetrik semboller yapar. Bu açıkça Matplotlib projesine bir geliştirici olarak katkıda bulunmak isteyen biri için tasarlanmış gelişmiş bir seçenektir.
Kişisel deneyim yok, ancak here'dan set_view_interval() veya set_data_interval()? Bir proje için Matplotlib'i kullandım, ancak x ekseni genişliğini sabitlemek için oynamamıştım.
Bir veri çerçevesindeki X ve O'nuz varsa, aynı grafiği nasıl oluşturursunuz? –
- 1. matplotlib çubuk grafiği ile tarihler
- 2. Python matplotlib Şekil
- 3. Matplotlib şekil penceresini baskılayamıyor
- 4. Python Matplotlib - Imsave ile şekil boyutlarını daraltma
- 5. Sıralanmamış verilerle kesişen matplotlib grafiği
- 6. Matplotlib araç çubuğu eksik "şekil ayarları" düğmesi
- 7. Matplotlib kullanarak offset olmaksızın 3d dağılım grafiği
- 8. Matplotlib matshow için şekil nasıl değiştirilir
- 9. Virgülleri nokta ve nokta ile virgülle değiştirme
- 10. python matplotlib kısa çizgi nokta - nasıl yapılır?
- 11. Renk gradyanlı Matplotlib 3D dağılım grafiği
- 12. Python grafiği Matplotlib kullanarak büyük matris
- 13. Pasta grafiği ve pandalar veri çerçevesindeki matplotlib kullanarak bir tablo
- 14. python ve matplotlib içinde güncelleme şekli
- 15. Skaler verilerle dağılım grafiği
- 16. matplotlib
- 17. matplotlib
- 18. Bir matplotlib şekil penceresinde gezinme araç çubuğunu kolayca nasıl değiştirebilirim?
- 19. Bir işlev python'da bir şekil nasıl döndürür (matplotlib kullanarak)?
- 20. Matplotlib
- 21. matplotlib interaktif modu: Şekil penceresi hala görüntülenip görüntülenmeyeceğini belirleme
- 22. İçe aktarılan şekil dosyası dışındaki alan (basemap/matplotlib)
- 23. Matplotlib
- 24. Bir toplu dağıtım işlevinin logaritmik grafiği matplotlib içinde
- 25. Matplotlib ile scatterplot animasyonlarını kaydetme
- 26. Python, Matplotlib, Dağılım grafiği, Tıklatılan noktadaki rengi değiştir
- 27. GNUPLOT: nokta boyutuna göre nokta ile nokta arsa
- 28. assert_eq! kayan nokta sayıları ve delta ile
- 29. matplotlib çubuk grafiği siyah - çubuk kenarlıklarını nasıl kaldırırım
- 30. Altpipler ve ArtistAnimation ile matplotlib kullanılarak animasyon
Eğer Jeff burada dinliyorsa, P & F grafiğini terminalde başarıyla bastığınızı söylemiştiniz. Sen yapar mısın? python kodunu (veya en azından mantığı) paylaşır mısınız? Python'da P & F grafiğini geliştirmeye çalışıyorum. Terminalde yazdırılabiliyorsa, onu HTML formatına almaya çalışacağım. Teşekkürler, – Vineet
Hiç bir çalışma noktası ve çizilen grafik elde ettiniz mi. –