はじめに
無料で使えて、高機能・高速・良デザインのグラフを作成できる「ScottPlot」の紹介まとめです。
以前も紹介記事を書いてますが、新バージョンのリリースや、細かい機能も紹介してきたので、まとめもかねてて再度ScottPlotをなるべくわかりやすく紹介します。
- はじめに
- ScottPlotの概要
- 散布図の作り方
- カスタマイズ・便利機能 コードも貼る
- その他グラフ
- まとめ
- さくさく動くグラフを作れる。
- グラフの拡大・縮小・移動がコードなしで作れる
- 軸・凡例・目盛のカスタマイズできる
- 大量のデータを読み込んでも描画が遅くない
- 簡易的なリアルタイム描画もできる
ScottPlotの概要
ScottPlotは、無料で高機能・高速・良デザインのグラフを作成できるグラフライブラリです。NuGet対応なのでインストールも簡単です。MITライセンスなので商用でも利用することができます。
開発も活発で、2021年5月に大規模アップデートの「Ver.4.1」がリリースされました。本家HPにサンプルコードや画像が「CookBook」として体系化されて公開されています。
Ver.4.1のアップデートの概要や注目点などの詳細は以下の記事をご覧ください。
公式HP・紹介サイトなど
CookBookが掲載されている公式サイトや、GitHubのプロジェクトページは以下です。
また、以前は皆無でしたが、最近では日本語のサイトやQiitaの記事も見かけるようになってきました。日本での知名度が上がってきた証拠だと思うので、個人的にもうれしいです。
公式HP
https://swharden.com/scottplot/
GitHubプロジェクトページ
https://github.com/ScottPlot/ScottPlot
【WPF】いちばんやさしいScottPlot の使い方(WindowsForm共通)
C# グラフライブラリ ScottPlotのTips
https://qiita.com/ohru131/items/8cc5d3d539a74d05423d
※ Qiita記事での本サイトへのリンクの掲載ありがとうございます。
ライセンス・人気度・プラットフォーム
ScottPlotのライセンスや、DL数などは以下の通りです。
ライセンス | MIT | |
.NETバージョン | .NET 4.6.1~ .NET Core 2.0 ~ | ※.NET 5.0にも対応 |
NuGet ダウンロード数 | 104K | |
GitHub Star数 | 930 |
プラットフォーム
- Windows Forms
- WPF
- Avalonia
- Console Application
※最新のVer.4.1系の内容を掲載しています
※ 2021年8月時点の情報です
散布図の作り方
以下のシンプルなグラフであれば、5行の実装で作ることができます。
下のGIF動画は、最新のScottPlot Ver.4.1で、線付きの散布図(折れ線グラフ)を作成したものです。
拡大・縮小や、デザインはデフォルトなので実装や設定はする必要ありません。
全体コード
上記のグラフを作成するコードは以下の通りです。usingも含めて実装コードは5行のみです。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using ScottPlot; // DataGenに使います
namespace FormScottPlot_41
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
// サンプル用のポイントデータです
double[] xs = DataGen.Consecutive(51);
double[] sin = DataGen.Sin(51);
// データをプロットします
formsPlot1.Plot.AddScatter(xs, sin);
}
}
}
より細かい作り方は・・・
NuGetでのインストール方法や、コントロールの貼り付け方など、さらに細かい内容は以下の記事をご覧ください。Ver.4.0の記事ですが最新版でも同じ方法で作ることができます。
カスタマイズ・便利機能
表示やグラフの設定についても、いろいろな機能が充実しています。長くなってしまうので詳細は過去の記事をご覧ください。Ver.4.0の記事もありますが、実装方法や実行時のイメージは確認できると思います。
グラフ操作・表示関連
- 拡大・縮小範囲の制限
- データに合わせた表示範囲の自動設定(オートスケール)
- 目盛間隔や表示の設定
グラフのカスタマイズ関連
- Y軸を日付にする
- 第二軸を表示させる
リアルタイム描画
ScottPlotは静的(固定された)データの描画を得意とするため、あくまで「おまけ」程度ですが、簡易的にグラフをリアルタイムに描画することもできます。
まとめ
長くなってしまいましたが、ScottPlotの使い方や、細かい機能などについてまとめてみました。参考になればうれしいです。
ScottPlotについては他にも記事があります。興味のある方はトップページ右上のメニューから「ScottPlot」を選んで記事をご覧ください。
伝わるグラフを作る
この記事の読者の方々は、少しでも「分かりやすく」「見やすく」といったことも考えてアプリケーションを作られている方が多いと思います。それだけでも十分に素晴らしいですが、「そもそもどんなグラフがユーザーにとって分かりやすいか?」といった、デザインやUXの知識・視点も結構おもしろいです。
以下の本など、比較的手軽な値段で読める書籍がいくつかあるので、ぜひ覗いてみてください。
応援・要望お待ちしてます
ブログを見ていて「この辺を詳しく知りたい」「このライブラリの使い方を知りたい」「こんなことで困ってる」...etc があれば、コメント・問い合わせ・Twitterで教えてください。質問・ご要望に合わせて解説記事を作ります。
ブログを気に入っていただけたり、「応援してもいいよ」という方がいたら、ブログやSNSでの紹介をお願いします。 あたたかい応援は、中の人の更新の大きな励みになります。