私は現在、matplotlib.pylab.plot
を複数回呼び出して同じ画面に複数のデータセットを表示するコードを持ち、すべてのプロットを考慮してMatplotlibをグローバルminおよびmaxにスケールします。個々のプロットを独立して、その特定のプロットの最小値と最大値にスケーリングするように求める方法はありますか?Matplotlibで独立したスケーリングを持つ複数の重複プロット
8
A
答えて
3
あり、このためには直接的なサポートはませんが、ここでは二つの独立した垂直軸illlustrates mailing list postingからいくつかのコードです:これは、単一のプロットを作成する方法です
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([])
0
を(add_subplot(1,1,1)) y軸のスケールを制限します。
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
0
私はこのようなものが必要ですが、インタラクティブシェルにコピー&ペーストして見てみるという例を作成したかったのです。
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()
検査済みとPython 2.7.6、1.8.1 numpyの、matpotlib 1.3.1で動作します。ここでは、実用的なソリューションを必要とするあなたのためのものです。私は、それを使って遊んでいき、重ねて表示された日付のプロットでうまくやっていく方法を探しています。私は私の発見を返信します。
0
ここでは、日付プロットを使用したソリューションです。twinx()を使用して、2番目のy軸を追加するための短い手を使った最適化ソリューションだと思います。ドキュメントから
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 =なし) x軸を共有する第二の軸を作ります。新しい軸はax(またはaxがNoneの場合は現在の軸)の上に重なるでしょう。 ax2のティックが右に配置され、ax2インスタンスが返されます。 More here。
関連する問題
- 1. d3js v4:独立した複数の軸スケーリングとパンニング
- 2. 独立した特性を持つ複数のポリマー2要素?
- 3. 複数の独立したオブジェクトを持つrequestAnimationFrame
- 4. ラムダクエリの複数の独立したフィルタ
- 5. Scalaの複数の独立したimplicits
- 6. Vueルーター複数の独立したルータービューナビゲーション
- 7. Matplotlib:複数の定義を持つ関数をプロットする
- 8. 複数の独立した複数のオブジェクトのロック
- 9. 複数の独立した出力を持つ強化学習a3c
- 10. 独立したハッシュ(浅いコピー)に重複したハッシュ
- 11. OpenGLで複数の独立して動くオブジェクトを持つ方法
- 12. matplotlibで同じプロパティを持つ複数の関数をプロットする
- 13. Rubyの複数の独立変数ケース
- 14. Herokuで複数の独立したシェルを呼び出す
- 15. 重複したtimeseriesを持つ複数のデータフレームを集約
- 16. 複素数値関数のmatplotlibプロット
- 17. 数式エラー - (独立した)軸に重複する寸法 - <uple>ベースオブジェクト
- 18. 複数の作曲家が(独立した)モジュラープロジェクトでインストールする
- 19. 1つのプロットで同じスケールの独立した棒グラフ
- 20. 複数の軸を持つプロット
- 21. 単一のmatplotlib図の複数のプロット
- 22. AngularJS(複数の独立アプリ)を使用したポータルタイプアプリケーション
- 23. 複数の独立したコマンドを実行するエイリアス
- 24. OS独立パス 'lib/x86/libusb.so'で複数のファイルが見つかりました
- 25. gradle:3.0.0 OS独立パスbuilddef.lstで複数のファイルが見つかりました
- 26. 複数の独立したmariadbの使用法:複数のコンテナまたは1つ?アイソレーションと効率
- 27. x軸の値に基づいて複数の色を持つMatplotlibプロット
- 28. 複数の独立したgitリポジトリを1つのルートフォルダにまとめる
- 29. Matplotlibを使用した複数のプロットの作成
- 30. AngularJSの複数の独立した部分的な部分
元の質問の範囲は、2つの縮尺プロットではなくNの場合と思われます.3つ以上でこれを試してみると(a2、a3などを使用して軸インスタンスを追加する)一度に適切にスケーリングされたデータセットの束全体? – tehwalrus