0

このコードをモデルとして使用して、アプリケーションを変更し、同じ軸にオーバーレイされた 8 つ以上の個別のプロットと両側の異なるスケールをサポートしています。

これまでにいくつかの問題を抱えています。

  1. 一部の Y ラベルは左側にあり、一部は右側にあります。2 つまたは 3 つが (すべてではなく) 両側で (誤って) 繰り返されます。意味不明の原因となる繰り返しをオーバーレイするのは右側にあるようです。1 つの目盛りには、プロットされたデータの数があります。

  2. アプリケーションを停止すると、黒いウィンドウ (DOS プロンプト ウィンドウ) が消えません。私は、2 つの「キャンバス」ブロックが作成されたという理論を持っています。呼び出しは次のとおりです。

セット 1

myLOG_Fig = m_plt.figure(figsize=(3.0, 3.0), dpi=100)
self.myLOG_PlotCanvas = FigCanvas( panel, -1, myLOG_Fig )

セット 2

self.myLOG_HostAxes = host_subplot(111, axes_class=AA.Axes)

セット 1 は、パネル (4 つのパネルの 1 つ) にイメージ (描画領域キャンバス) を適用self.myLOG_PlotCanvasする配置ルーチンに を提示するために必要です。Sizerこのセットは、他のプロット (2 から 8) をキャンバスに開始するまでうまく機能します。

mpl ツールキットと AA を使用して X 軸を共有し、2 つ以上のスケールを表示するソリューション (セット 2) を見つけました。セット2を許可するようにコードを変更することで、問題に気づきました。プロットは、縮尺と色が正しく受け入れられます。サイド スケールはほとんど見栄えがよく (例外は右側の繰り返し)、X 軸ラベルと Y 軸ラベルのフォント サイズを変更できません。セット 1 を使用して、色とフォント サイズを制御できました。セット 2 は、文字属性の変更に応答しません。セット 2 で必要なコードを使用しなければならないコードが他にもいくつかあります (ただし、ここには記載しませんでした)。個人的には、2 つのキャンバス描画領域が同じではないと思います。これが、アプリケーションが終了しない理由の 1 つです (黒い DOS ウィンドウが残ります)。

ルーチンを 1 つのキャンバス描画領域に接続する、matplotlib および mpl_toolkit コードの最新バージョンはありますか? タブと各タブに描画領域を持つアプリケーションを作成するために、(サイザーなどを使用して) 私の要件を達成するコードはありますか?

4

1 に答える 1