はじめに
無料で使える高速グラフライブラリ「ScottPlot」の最新バージョン4.1で、線付きの散布図(折れ線グラフ)を作る方法を解説します。
初心者の方にも分かりやすいよう、VisualStudioで新規プロジェクトを作成する所から、NuGetでScottPlotをインストール方法・コードを書く画面を出す方法まで、図付きの手順で丁寧に解説していきます。
手順を実施して20行程度のサンプルコードをコピペすると、最終的に以下のGIF動画のようなグラフを作ることができます。
この記事では、最新のVer.4.1で散布図を作る方法を解説しています。旧バージョンの方法はこちらをご覧ください(実装コードが少し違います)。
環境
この記事は以下の環境で作成しています。
環境 | バージョンなど | 備考 |
VisualStudio | 2019 Community | 2017でも可 |
.NET | 4.7.2 | |
プロジェクト | WindowsFormアプリケーション | |
OS | Windows 10 | Wn7でも可 |
ScottPlot | 4.1.16 |
プロジェクトの作成とScottPlotのインストール
下記の手順でプロジェクトの新規作成とScottPlotのインストールを行います。
プロジェクトの選択
VisualStudioの新規プロジェクトで「WindowsFormプログラム(.NET Framework)」を選択して、次へを押します。
似た名前も多いですが、 WindowsFormプログラム(.NET Framework)」を選択してください。
新しいプロジェクトの構成
プロジェクトの名称を入力します。好きな名前で問題ありませんが、自動生成されるコードにも使用されるので、こだわりがなければ解説と同じ「FormScatterPlot41」としてください。
保存場所はデフォルトでもお好きな場所でも問題ありません。
NuGetパッケージの管理の表示
VisualStudioのメニューから、「プロジェクト」「NuGetパッケージの管理…」を選択します。
ScottPlotの検索とインストール
開いたウインド内で「参照」を選択し、検索欄に「ScottPlot」と入力します。
表示された「ScottPlot.WinForms」を選択します。
「バージョン」に「Ver.4.1.x」が表示されているのを選択して「インストール」を押します。
※ 末尾の数字に大きな違いはありません。インストール時の最新を使ってください。
ライセンスの確認画面
インストール中、ScottPlotで使用している、MicrosoftのDLLへのライセンスの同意画面が表示されます。
一般的な「DLLを改変しないで使用すること」という内容のようです。同意しない場合はインストールが中断してしまうので、内容を把握した上で「同意する」を選択してください。
※ 同意しても課金などは発生しません(無料)。あくまでDLLを改変しないことへの同意です。
一般的な改変禁止の内容と考えていますが、ざっとの調査しかできていません。商用利用で厳密にライセンス調査・管理が必要な方は、ご自身で詳細に調べてからご利用ください。
インストールの完了
エラーなどの表示などがなく、以下のように「README.txt 」が表示されればインストールは完了です。
コントロールの追加
インストールの完了後、下記手順でフォームにScottPlotのコントロール(グラフが描画される部分)を追加します。
デザイナの表示とコントロールの追加
ソリューションエクスプローラー内の「Form1.cs」を右クリックして「デザイナーの表示」を選択します。
ツールボックスを選択し、一番上の「ScottPlot.WinForms」のコントロールを開きます。
「FormsPlot」が表示されるので、Formにドラッグ&ドロップして貼り付けます。
Form上にScottPlotのグラフの枠が表示されていれば、コントロールの追加は完了です。
コードを実装するために、 ソリューションエクスプローラー内の「Form1.cs」を右クリックして「コードの表示」を選択し、コード画面を表示しておきます。
ソリューションエクスプローラーが表示されない場合は、デザイナの画面の何も表示されていない部分をクリックするか、メニューの「表示」「ソリューションエクスプローラー」をクリックしてください。
全体コード
Form1.csに実装するコードは以下の通りです。
(コントロールの名前はデフォルト(FormsPlot1)として実装しています)
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;
namespace FormScatterPlot41
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
// サンプル用のデータです。
double[] pointX = { 1.0, 2.0, 3.0, 4.0, 5.0 };
double[] pointY = { 1.0, 2.0, 3.0, 4.0, 5.0 };
// グラフにタイトルを付けます
formsPlot1.Plot.Title("タイトル");
// X軸, Y軸に名前を付けます
formsPlot1.Plot.XLabel("時間");
formsPlot1.Plot.YLabel("値");
// 線付きの散布図としてデータをセットします。凡例もあわせて設定します。
formsPlot1.Plot.AddScatter(pointX, pointY, label: "漢字");
// Legend(凡例)の表示を指定します(指定しないと表示されません)
formsPlot1.Plot.Legend();
// ScottPlotのコントロールに描画(表示)します。
formsPlot1.Render();
}
}
}
実行結果と日本語の表示
上の説明では省略してしまいましたが、日本語の凡例・タイトル・軸名なども文字化けせず表示できます。地味ですが日本語が表示されないといったライブラリもある中うれしい機能です。
ScottPlotの簡単な操作方法です。Ctrlなどを使わずにマウスのみで操作することができます。
マウス操作 | グラフ |
スクロール | 拡大・縮小 |
左クリック+ドラッグ | 上下左右への移動 |
右クリック+ドラッグ | X軸/Y軸の拡大縮小 |
まとめ
無料で使える高速グラフライブラリ「ScottPlot」の最新バージョン4.1で、線付きの散布図(折れ線グラフ)を作る方法を解説しました。
本家のHPでも、いろいろなグラフの作り方やカスタマイズの方法がCookBookとして掲載されていますので合わせてご覧ください。
https://swharden.com/scottplot/cookbook
お知らせ
今月号のSoftware Designは「もっとTypeScriptの力を引き出そう」
JavaScriptの拡張言語でしょ?と思っているかたへ、Union型などTypeScriptの持つ秘めたる力を解説する特集となっています。
個人的には第2特集の「Ubuntuの現代的な使い方」がの方が気になりました。より詳しい内容は以下のリンクからご覧ください。
ScottPlot Ver.4.1の記事
このブログではScottPlotのVer.4.1について、以下の内容を紹介しています。どれも簡単で短いコードで作成できるので、興味のある方は以下のリンクからご覧ください。
- Ver.4.1 新機能についての紹介
- 簡易的にリアルタイム表示する方法
- X軸を日付にする方法
- マウスで選んだポイント座標を表示する方法
ScottPlot Ver.4.1 新機能についての紹介
Ver.4.0からのバージョンアップで追加された機能の概要や、個人的に気になる機能についてをまとめています。
簡易的にリアルタイム表示する方法
ScottPlotを使って簡易的にグラフをリアルタイムで表示する方法です。
X軸を日付にする方法
X軸を日付にカスタマイズする方法です。
マウスで選んだポイント座標を表示する方法
マウスで選んだポイントをForm画面に表示する方法です。
質問・要望 大歓迎です
「こんな解説記事作って」「こんなことがしたいけど、〇〇で困ってる」など、コメント欄で教えてください。 質問・要望に、中の人ができる限り対応します。
使えたよ・設定できたよの一言コメントも大歓迎。気軽に足跡を残してみてください。記事を紹介したい方はブログ、SNSにバシバシ貼ってもらってOKです。