■ 前書き
・これからJFreeChartについての解説をアップしていきます。本記事は目次となります。
・経緯と意図は次のとおりです。
・私はArtery(ベクター⇒プログラミング⇒Java言語からダウンロード可能)というJava用のライブラリを作っていて、その中にJFreeChart用の機能があります。しかしJFreeChartは使っている人は少ないので、JFreeChart自体の説明サンプルも入れています。
・上記のJFreeChartのサンプルを紹介します。ただすべてをアップするのは、かなり量があるのと、えげつないので、一部有用そうなサンプルを抜粋します。
・サンプルは未作成の部分が多々あり、また既存部分も整理しますので、アップには時間がかかります。
■ ヴァージョン
・JFreeChartの本家のダウンロードはSourceForgeを指しています。ヴァージョンは1.0.19。
・だがしかし、本家からはリンクしていませんが、GITHUBにもあります。ヴァージョンは1.5.0。
・今のところ、私のサンプルは1.0.19で書いています。
■ 概説
・JFreeChartの要素には次のものがある。
・Plot,Dataset,Renderer,Axis
・Plot
・グラフの表示領域。この中に複数のグラフが表示される。
・表示するチャートに応じたPlotを選択する。例えばパイチャートであればPiePlot。
・Plotの上位概念としてChartがある。Chartには複数のPlotを入れることができるが、多くの場合は一つのPlot。
・Dataset
・表示データを格納するクラス。かなり多くのクラスがある。
・Plotと表示するグラフと元データの形式に応じて適切なDatasetを選択する。
・注意、メソッドの構成、メソッド名、引数の順番、引数の構造などがわりと統一されていない。
・Renderer
・グラフの具体的な表示を行う。こちらもかなり数が多い。
・例えば棒グラフであれば、BarRendererを使用する。
・RendererはPlotに対して指定するが、グラフに対して指定することも可能。
・Plotに指定した場合は、色やポイントの形状などは自動的に決定される。
・グラフごとに指定する場合は、全責任を負う必要があり、かなり大変。
・例えばPlotに対して指定をして、特定のグラフに対して必要な部分のみを変更する。例えば線の太さを変更する。このようにするのが実用的。
・Axis
・X軸(DomainAxis)とY軸(ValueAxis)。
・代表的なものは数値や日時の軸。対数軸もあり。
・上下限はデータを見て自動的に決定してくれるが、自分で設定することも可能。
・上下限をデータより狭く設定するとグラフが拡大して表示される。
・SymbolAxisは離散値の軸。この場合は階段状に表示したいのでStepRendererを使用する。
・イベント
・画面上を右クリックするとPlotに応じたメニューが表示される。
・メニューを消すことも、別メニューの表示も可能。別メニューは自己責任でプログラミング。
・画面をドラッグすると拡大することができる。
・クリック時に十字線を表示したり、データを取得することができる。
・しかしリスナーの中でデータを取得すると一回前のデータが取得されるので、別途スレッドで取得する。
・取得したデータはdoubleなので、日時などの意味のあるデータに変換する必要があるかも。
・値は取得できるが、どのグラフかは不明なので、データを検索してグラフを決定する必要がある。
■ 目次
///////////////////////////////////////////////////////////
// いろいろなチャート
パイチャート
パイチャート-DefaultPieDatasetの作成
パイチャート-UIで特定データを強調する
複数パイチャート
[複数パイチャート/DefaultCategoryDatasetの作成★]
レーダーチャート/SpiderWebChart
レーダーチャート(SpiderWebChart)-ArMatrixからCategoryDatasetを作成
レーダーチャート/SpiderWebChart/特定データの強調
レーダーチャート/SpiderWebChart/UIで特定データを強調する
バブルチャート/BubbleChart
バブルチャート/BubbleChart-DefaultXYZDatasetの作成
バブルチャート/UIで特定データを強調する
バーチャート/BarChart
バーチャート/DefaultCategoryDatasetの作成-ArMatrixから作成する
バーチャート/DefaultCategoryDatasetの作成-ArMatrixから作成する-続き
バーチャートに値を表示する
バーチャート-UIで特定データを強調する
// 三次元バーチャート
積上げバーチャート
[積上げバーチャート-Datasetの作成★]
積上げバーチャート-特定データの強調
積上げバーチャート-特定データの強調-続き
積上げバーチャート-UIで特定データを強調する
積上げバーチャート-人口構成図-DefaultKeyedValues2DDataset
積上げバーチャート-人口構成図-DefaultKeyedValues2DDatasetの作成
// インターヴァルチャート/一つのxに対して二つのy値がある ⇒ 例.最低気温と最高気温のグラフ.
インターヴァルチャート-DefaultIntervalCategoryDataset
インターヴァルチャート-DefaultIntervalCategoryDataset-Collectionから作成する
// 複数値チャート-同一キーに複数の値
複数値チャート-DefaultMultiValueCategoryDataset
複数値チャート-DefaultMultiValueCategoryDataset-特定データの強調
複数値チャート-UIで特定データを強調する
// 平面上に■の領域を描く
XYインターヴァルチャート/DefaultIntervalXYDataset
[XYインターヴァルチャート/DefaultIntervalXYDatasetの生成★]
XYインターヴァルチャート/UIで特定データを強調する
// DefaultXYDatasetを使う
二次元分布チャート/DefaultXYDataset
二次元分布チャート/XYChart/DefaultXYDatasetの作成/Collectionから作成する
二次元分布チャート/レンダラを個別に指定する/特定データの強調
二次元分布チャート/UIで特定データを強調する
// XYSeriesCollectionを使う
二次元分布チャート/XYSeriesCollection
二次元分布チャート-XYSeriesCollection-XYSeriesをCollectionから作成する.X,Y値はオブジェクトから取得する
二次元分布チャート-XYSeriesCollection-XYSeriesをListから作成する.X値はListのインデックス、Y値はオブジェクトから取得
二次元分布チャート-XYSeriesCollectionをMapMap<T0,List<T1>>から作成する.X,Y値はオブジェクトから取得する
二次元分布チャート-XYSeriesCollection-レンダラを個別に指定する-特定データを強調する
二次元分布チャート-XYSeriesCollection-UIで特定データを強調する
平均と標準偏差のチャート-DefaultStatisticalCategoryDataset
平均と標準偏差のチャート-DefaultStatisticalCategoryDataset-Collectionから作成する
// 時系列チャート-TimeSeriesCollectionを使う
時系列チャート/TimeSeriesCollection
時系列チャート/TimeSeriesCollectionをMap<T0,List<T1>>から作成
時系列チャート/TimeSeriesCollectionをArMatrix<T0,T1,T2>から作成
時系列チャート/TimeSeriesCollection/UIで特定データを強調する
PolarChart-極座標
PolarChart-極座標-特定データを強調する
PolarChart-極座標-UIで特定データを強調する
// 多軸チャート
// SHLCデータのチャート
///////////////////////////////////////////////////////////
// レンダラ(Renderer)
///////////////////////////////////////////////////////////
// 軸(Axis)、グリッド、マーカー
LogAxis-対数軸
SymbolAxis,StepRender
NumberAxis-目盛りの間隔の設定
ExtendedCategoryAxis-軸の値に補足説明をつける
DateAxis
グリッドを表示しないようにする
グリッドの色と太さを変える
上限線、下限線の設定
チャートの拡大と縮小
X軸が共通な二つのグラフを上下に表示する
X軸が共通な二つのグラフを重ねて表示する
///////////////////////////////////////////////////////////
// イベント処理(Event)
XYPlot-マウスの動きに応じて十字線と値を表示する
XYPlot-マウスの動きに応じて十字線と値を表示する-ArXYPlotMouseMovedHandlerを使用
XYPlot-クリック時に値を取得し十字線を表示する
XYPlot-クリック時に値を取得し十字線を表示する-ArcXYPlotMouseClickedHandlerを使用-0
XYPlot-クリック時に値を取得し十字線を表示する-ArcXYPlotMouseClickedHandlerを使用-1
///////////////////////////////////////////////////////////
// 雑多
参議院議員選挙(2019)開票速報
貸借対照表
==== ended.