ScottPlot

【最新】ScottPlot 4.1.4-betaで複合グラフ(第2軸)を表示する方法【ベータ版】

はじめに

ScottPlotを使って複合グラフ(エクセルの第2軸)を表示する方法を紹介します。
現在βリリース中の「ScottPlot 4.1」から新しく実装された新機能です。
まだベータ版ですが、個人的に欲しかった機能の一つなので紹介したいと思います。
(βですが、サンプルレベルでは普通に使用できています)

※ なぜか、ライブラリのインストール中にMicrosoftのライセンスへの同意
 画面が表示されます。
  詳細な内容は調べきれていませんが、お仕事などでβ版を商用利用する方
はご注意ください。

紹介内容
  • 環境
  • 実行時のグラフ画面
  • Formプロジェクトの作成方法
  • Nugetでのβ版のインストール方法
  • グラフを表示するためのコード

環境

環境         バージョンなど
VisualStudio   2019 Community
.NET4.7.2
プロジェクトWindowsFormアプリケーション 
OSWindows 7
ScottPlot4.1.4-beta

グラフの表示結果

複合グラフ(第2軸)の表示結果です。Y軸右側に第2軸が表示されています。
以下からプロジェクトの作成方法や、実装内容を説明していきます。

プロジェクトの作成

VisualStudioの新規プロジェクトでWindowsFormプログラムを選択します。
※フォームの名称はForm1として説明します。

NuGetでのβ版のインストール

VisualStudioの「プロジェクト」「Nugetパッケージの管理…」を選択します。


以下の手順で設定してきます。

  1. 開いたウインド内で「参照」を選択します。
  2. 検索欄に「ScottPlot」と入力します。
  3. プレリリースを含める」にチェックを入れます。
  4. 「v4.1.4-beta 」の「ScottPlot.WInForms」を選択します。
  5. 「インストール」を選択します。

変更のプレビューが表示されたら「OK」を押します。

ラインセンスへの同意の画面が表示されたら、「同意する」を選択します。
おそらく、コード参照だけを許可する Ms-RL系ライセンスへの同意だと思われます。
DLLを改変しない場合は問題ないと思いますが、商用利用などの方は自身で調査の上、使用してください。

コントロールの追加

パッケージが追加できたら、ソリューションエクスプローラー内のForm1.csを右クリックして、デザイナーの表示をクリックします。
ツールボックスから、「ScottPlot.WinForms」のコントロールを開き、「FormsPlot」をドラック&ドロップしてFormに貼り付けます。

これでコントロールの配置は完了です。

コードの実装

Form1.csを右クリックしてコードの表示を選択し、以下のコードを実装します。
※コントロールの名前はデフォルト(FormsPlot1)で作成しています。

namespace ScottPlot41BetaTest
{
    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 };

            //
            // 注意: 4.1から ScottPlot.plt など 4.0系の関数で非推奨となるものがあるようです
            //

            // グラフにタイトルを付けます
            formsPlot1.Plot.Title("タイトル");

            // X軸, Y軸に名前を付けます
            formsPlot1.Plot.XLabel("時間");
            formsPlot1.Plot.YLabel("値");

            //
            // Y軸の第2軸の設定です
            //

            // 第2軸の軸名称をつけます
            formsPlot1.Plot.YAxis2.Label("2つ目の値");

            // 目盛り線の表示を設定します(Trueにしないと表示されません)
            formsPlot1.Plot.YAxis2.Ticks(true);

            // 散布図としてデータをセットします。凡例もあわせて設定します。
            formsPlot1.Plot.AddScatter(pointX, pointY, label: "漢字");

            // Legend(凡例)の表示を指定します(指定しないと表示されません)
            formsPlot1.Plot.Legend();

            // ScottPlotのコントロールに描画(表示)します。
            formsPlot1.Render();
        }
    }
}

まとめ

ScottPlotを使って複合グラフ(エクセルの第2軸)を表示する方法を紹介しました。
まだβ版ですが、開発は活発なので、近いうちに正式版としてリリースされるかと思います。
使ってみて「いいね」と思われた方は、以下の本家GitHubページより、スターボタンのクリックをお願いします。

https://github.com/ScottPlot/ScottPlot

ScottPlot 4.1.4-betaの使い方については、以下の本家CookBookをご覧ください。

https://swharden.com/scottplot/cookbooks/4.1.4-beta/

応援・要望お待ちしてます

ブログを見ていて「この辺を詳しく知りたい」「このライブラリの使い方を知りたい」「こんなことで困ってる」...etc があれば、コメント・問い合わせ・Twitterで教えてください。質問・ご要望に合わせて解説記事を作ります。

ブログを気に入っていただけたり、「応援してもいいよ」という方がいたら、ブログやSNSでの紹介をお願いします。 あたたかい応援は、中の人の更新の大きな励みになります。

ABOUT ME
えす
現役のソフトウェアエンジニアです。 C++ C# Python を使ってます。10年ちょい設計/開発部門にいましたが、今はQAエンジニアっぽいことをしています。

COMMENT

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です