'da bağımsız ölçekleme ile birden fazla örtüşen parsel var Şu anda aynı ekranda birden çok veri kümesini görüntülemek için matplotlib.pylab.plot
'u birçok kez çağıran bir kod var ve Matplotlib, tüm grafikleri göz önünde bulundurarak her birini küresel min ve maks. Her arsa bağımsız olarak, belirli bir arsa min ve max için sormak için bir yol var mı?Matplotlib
cevap
Bunun için bir direkt destek, ama burada iki bağımsız dikey eksenleri illlustrates bir mailing list posting bazı kod: Bu, tek bir arsa oluşturmak nasıl
x=arange(10)
y1=sin(x)
y2=10*cos(x)
rect=[0.1,0.1,0.8,0.8]
a1=axes(rect)
a1.yaxis.tick_left()
plot(x,y1)
ylabel('axis 1')
xlabel('x')
a2=axes(rect,frameon=False)
a2.yaxis.tick_right()
plot(x,y2)
a2.yaxis.set_label_position('right')
ylabel('axis 2')
a2.set_xticks([])
(add_subplot (1,1,1)) ve y eksenlerindeki skalayı sınırlandırın.
myFig = figure()
myPlot = self.figure.add_subplot(1,1,1)
myPlot.plot([1,2,3,4,5], [5,4,3,2,1], '+r')
myPlot.set_ylim(1,5) # Limit y-axes min 1, max 5
Böyle bir şey gerek ama kopyalayıp etkileşimli kabuk içine yapıştırın ve ona bir göz alabilir bir örnek yaratmak istedik.
from numpy import arange
from math import sin, cos
import matplotlib.pyplot as plt
x = arange(10)
y1 = [sin(i) for i in x]
y2 = [10*cos(i) for i in x]
rect = [0.1, 0.1, 0.8, 0.8]
a1 = plt.axes(rect) # Create subplot, rect = [left, bottom, width, height] in normalized (0, 1) units
a1.yaxis.tick_left() # Use ticks only on left side of plot
plt.plot(x, y1)
plt.ylabel('axis 1')
plt.xlabel('x')
a2 = plt.axes(rect, frameon=False) # frameon, if False, suppress drawing the figure frame
a2.yaxis.tick_right()
plt.plot(x, y2)
a2.yaxis.set_label_position('right')
plt.ylabel('axis 2')
a2.set_xticks([])
plt.show()
Test ve piton 2.7.6, Numpy 1.8.1, matpotlib 1.3.1 çalışmaktadır: Burada çalışan bir çözüm gerektiren o sizin içindir. Onunla oynamaya devam edeceğim, üzerinde yer alan tarih parselleri ile çalışmak için düzgün bir yol arıyorum. Bulgularımı geri göndereceğim.
Tarih grafiklerini kullanarak bir çözüm, ve ikinci bir y ekseni eklemek için kısa bir el ile twinx() kullanarak en uygun çözüm olduğunu düşünüyorum. Dokümanlar
import matplotlib.pyplot as plt
import matplotlib.dates as md
import datetime
import numpy
numpy.random.seed(0)
t = md.drange(datetime.datetime(2012, 11, 1),
datetime.datetime(2014, 4, 01),
datetime.timedelta(hours=1)) # takes start, end, delta
x1 = numpy.cumsum(numpy.random.random(len(t)) - 0.5) * 40000
x2 = numpy.cumsum(numpy.random.random(len(t)) - 0.5) * 0.002
fig = plt.figure()
ax1 = fig.add_subplot(111)
fig.suptitle('a title', fontsize=14)
fig.autofmt_xdate()
plt.ylabel('axis 1')
plt.xlabel('dates')
ax2 = ax1.twinx()
ax1.plot_date(t, x1, 'b-', alpha=.65)
ax2.plot_date(t, x2, 'r-', alpha=.65)
plt.ylabel('axis 2')
plt.show()
, matplotlib.pyplot.twinx (ax = Yok) x eksenini paylaşan bir ikinci eksenleri olun. Yeni eksenler balta bindirecektir (veya eksen Yok ise mevcut eksenler). Ax2 için keneler sağa yerleştirilecek ve ax2 örneği geri dönecektir. Diğer here.
- 1. matplotlib
- 2. Matplotlib
- 3. matplotlib
- 4. Matplotlib
- 5. Matplotlib
- 6. matplotlib
- 7. Matplotlib
- 8. matplotlib
- 9. Matplotlib
- 10. matplotlib
- 11. Matplotlib
- 12. Matplotlib
- 13. MatPlotLib
- 14. Matplotlib
- 15. Matplotlib
- 16. matplotlib ben matplotlib alabilirsiniz hiçbir özellik 'pyplot'
- 17. Matplotlib imshow
- 18. Python Matplotlib
- 19. Matplotlib - Sadece
- 20. Matplotlib Animasyon
- 21. Matplotlib kontrolü
- 22. Matplotlib, Python
- 23. Matplotlib/Python
- 24. Matplotlib autoscale
- 25. Matplotlib Colorbar
- 26. Boxplot matplotlib
- 27. Matplotlib pasta grafiğinde "patla" seçeneğini gerçekten beğendim matplotlib
- 28. grafik zekâ Matplotlib
- 29. gnuplot epslatex işlevselliği matplotlib
- 30. Matplotlib Contour Clabel Konum
Özgün sorunun kapsamı 2'den çok ölçeklendirilmiş çizim yerine N için yapılmış gibi görünüyor - 3 veya daha fazla ile bunu denediğimde (ek eksen örnekleri için a2, a3 vb. Kullanarak) ölüyor. Bir kerede doğru şekilde ölçeklendirilmiş bir dizi veri kümesi – tehwalrus