CorePlotのサンプル:X-Yグラフ(散布図)の最低限の実装

CorePlotで、X-Y座標系に散布図を描画させたいときの、最低限の実装。
完成形はこんな感じ。

ViewControllerのソースコードは最後に貼っています。

UI側の実装

1. InterfaceBuilderでグラフを持たせるViewである、CPTGraphHostingViewを用意する。
UIViewをドラッグして配置して、CustomClassにCPTGraphHostingViewを指定します。
こんな感じにしてみました。

2. ViewController側でOutlet接続
ViewControllerに、CPTGraphHostingViewのプロパティを持たせて、Outlet接続します。

コード側の実装

ここでは、概要だけ文で書きます。詳細は、ソースを参照してください。

やることは、グラフを設定して、HostingViewへぶち込みます。
グラフの設定で、最低限やるのは、プロットスペース、プロット、軸の3つです。

それぞれの登場人物に関しては、公式ページのこのへんが参考になります。図を見るだけでも、なんとなくイメージがつかめます。

グラフはExcelとかで作るグラフみたいな感じのイメージで、とか、軸のラベルとか、タイトルとか、プロットスペースとか、プロットとか、凡例とか、とにかく色々な要素で構成されています。
で、グラフの中の、データが表示されるエリアがプロットスペースで、データがプロットです。

プロットスペースは、データを表示させる幅なんかを管理しています。プロットの箱みたいな感じです。
プロットは、データで、散布図用プロット(CPTScatterPlot)とか、バーチャート用プロット(CPTBarPlot)とか、色々あります。

なので、あるグラフを描きたいと思ったら、まず、それに相当するプロットを探して、それにふさわしいプロットスペースを用意して、
グラフにセットする。って感じになります。

色々なデータを重ねたい場合は、1つのグラフに対して、単数または複数のプロットスペース、複数のプロットを用意して、重ねます。
グラフにプロットスペースをaddして(graph.add(space: CPTPlotSpace))、グラフにプロットを、プロットスペースを指定してaddする(graph.add(plot: CPTPlot, to: CPTPlotSpace?))って感じです。

重ね合わせの例は、また次の機会に記事にしようと思います。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

メインはWeb系エンジニアです。

コメント

コメントする

CAPTCHA


目次