0

私は基本的に数値を計算し、それに応じて棒/線/円/散布図をプロットするための財務報告分析のアプリケーションを開発しています。このアプリケーションはPandasとmatplotlibに基づいており、うまく機能します。エンドユーザーは私にパラメーターを送信するだけで、アプリケーションが実行され、SVG形式のグラフファイルが生成されます。その後、ファイルをエンドユーザーに電子メールで送信できます。

ここで問題となるのは、SVGファイルが静的であり、インタラクティブ機能が失われることです。エンドユーザーは、マウスをクリックするか、キーポイントまたは領域にカーソルを合わせると、関連する注釈をグラフに表示する必要があります。

マシンにmatplotlibチャートのインタラクティブ関数を追加しましたが、インストールされている環境に依存します。エンドユーザーはWindowsで実行され、python / matplotlibなどをインストールしません。必要なのは、ダブルクリックしてコンテンツと対話できる単一のファイルだけです。

私が今欲しいのは:matplotlibチャートをその種のファイルに変換する最も簡単な方法です。写真をフラッシュやダイナミックSVG、またはユーザーが対話できるファイルに変換するようなものです。

Pythonの既存のパッケージまたはこれについての考えはありますか?ありがとう、

4

1 に答える 1

1

stackoverflow検索は、matplotlib.orgの例を示すこれに対する答えを見つけます。ユーザーがこのファイルをWebブラウザーで開くと仮定すると、これは機能するはずです。彼がInkscapeまたは静的SVGビューアでそれを開いた場合、インタラクティブな体験を彼に与える方法はありません。もちろん、チャートをアップロードしてリンクを送信することもできます。これはおそらく最も便利であり、彼がブラウザでそれを表示することを確認してください。

または、matplotlibの代わりにd3.jsを使用することを検討してください。JavaScriptで生成されたSVGを使用し、すばらしいチャート機能を備えています。それらに必要なインタラクティブな動作を追加する方が簡単かもしれません。

マウスが要素の上にあるときに情報を表示するための簡単な解決策は<title>、SVGの要素を使用することです。要素のコンテンツは、<title>ホバー時にトゥートリップとして表示されます。この例を参照してください:

<svg xmlns="http://www.w3.org/2000/svg" width="1000" height="150">
  <rect width="50" height="50">
    <title>This is a rectangle</title>
  </rect>
  <circle cx="75" cy="75" r="25">
    <title>This is a circle</title>
  </circle>
  <text y="120">
    <tspan>Move your mouse over the</tspan>
    <tspan x="0" dy="20">elements to see the title text.</tspan>
  </text>
</svg>
于 2013-01-26T21:14:14.657 に答える