2

プロパティ コントロールのユーザー入力に基づいて、Spotfire で折れ線グラフの x 軸の日付範囲を設定する単純な IronPython スクリプトをプログラムしようとしています。これに関するドキュメントや例が見つからないため、次のように推測しましたが、機能していません。

from Spotfire.Dxp.Application.Visuals import LineChart
from Spotfire.Dxp.Application.Visuals import ScaleAxis

plot1= plot1.As[LineChart]()
plot1.XAxis.Min = StartDate
plot1.XAxis.Max = EndDate

[スクリプトの編集] ウィンドウで、ビジュアライゼーションとプロパティ コントロールを [スクリプト パラメータ] として入力しました。誰もこれを機能させる方法を知っていますか?? ありがとう!

注: ズーム スライダーは使用したくありません。


更新: Sum([Column]) OVER (AllPrevious([Date])) を実行しているため、Y の計算のために日付を除外することはできません。X 軸の範囲から除外する必要があるだけです。元のテーブルは次のように構成されています。製品 | 日付 | フェーズ |

そして、数式を使用して各フェーズの列を計算しました: If([Phase]="Phase A",1,0)

基本的にグラフは、時間の経過とともに生産の各段階を経た製品の数を示しているため、特定の日付でその段階にある製品の数をカウントするには、各段階の完了日を常に知る必要があります。X 軸に特定の日付範囲のみを表示したいのですが、他の 2 つのテーブルの上/下に他のグラフを配置して売上とコストを比較しているため、各フェーズの製品数に基づいて分析する方が簡単です。軸は同じ日付を示しています。申し訳ありませんが、写真をアップロードすることはできません。

私たちは最新の売上/コストのみを気にし、グラフが自動的に必要なものを表示するように、売上とコストのテーブルにデータ オン デマンドを使用してフィルターでこれらの日付を制限します。ここで唯一の問題は、# of Products グラフの範囲をフィルタリングすることです。これは、フェーズ列の日付が何年も前にさかのぼる可能性があるためです。各フェーズの合計製品数を知る必要がありますが、グラフを表示する必要はありません。当初から...ズームスライダーを使用するか、そのグラフの最小/最大をハードコーディングすることでこれを実現できますが、自動化されたものを本当に望んでいたので、継続的に調整する必要はありません.

4

2 に答える 2

3

これは、IronPython スクリプトに依存するのではなく、ブール演算列でフィルタリングすることで実現できると思います。

これを処理するために、地域別の製品売上のダミー データ セットを作成しました。Y 軸に Sum(Sales)、X 軸に Sales Date を使用して折れ線グラフを作成しました。

ここに画像の説明を入力

次に、新しいテキスト エリアを追加し、2 つの入力フィールド プロパティ コントロールを追加しました。ドキュメント プロパティには、それぞれデータ型が Date の dateBegin と dateEnd という名前を付けました。

プロパティ コントロールの設定

これで、希望の日付範囲を入力できます。

日付範囲入力フィールド

ここで、ユーザーが入力した日付範囲のみを X 軸 (販売日) に反映させる必要があります。私は、Spotfire のフィルタリング機能を利用することにしました。RowInDateRange という名前のブール演算列を挿入しました。

計算列の編集

画像では読みにくい場合のために、カスタム式を次に示します。

CASE WHEN [Sales Date] >= Date("${dateBegin}") AND [Sales Date] <= Date("${dateEnd}") THEN True ELSE False END

これで、特定の行がユーザーの入力した日付範囲内にあるかどうかを示す列 (RowInDateRange) ができ、そうでない行を簡単に除外できます。

日付範囲外の行を除外する

ビジュアライゼーションは、ユーザーが入力した日付範囲を動的に反映するようになりました。DXP サンプルを保存しましたので、ぜひご覧ください:地域別の 6 か月の売上.dxp

これがお役に立てば幸いです。

于 2014-12-24T15:32:03.937 に答える