質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.31%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Q&A

解決済

1回答

3541閲覧

C #ScottPlot を使った棒グラフの表示で特定の部分の色を変えたい。

yasu47

総合スコア7

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

0グッド

1クリップ

投稿2022/05/07 08:25

c# ScottPlotを使って 棒グラフを書いています。
Dataは下記になりますが pointY2[5] = 2000 の部分だけ、棒グラフを黒にしたいのです。
pointY2[0] = 500
pointY2[1] = 500
pointY2[2] = 500
pointY2[3] = 500
pointY2[4] = 500
pointY2[5] = 2000
pointY2[6] = 500
pointY2[7] = 500
pointY2[8] = 500
pointY2[9] = 500
pointY2[10] = 500
pointY2[11] = 500

下記の場合では、全部の要素が黒になります。(当然かもしれませんが・・)
Color c = Color.Black;
formsPlot2.Plot.PlotBar(DataGen.Consecutive(pointY2.Length), pointY2, showValues: true , fillColor: c);
formsPlot2.Render();

いろいろサイトを見た所、円グラフの場合は、特定の部分だけ色を変えるのがあったのですが、棒グラフでの対応がわからないのです。

アドバイスよろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

c# ScottPlotを使って 棒グラフを書いています。

前提条件や使用ライブラリ・バージョン等を明示してください。

今回わたしは.NET6で下記を使用しました。
NuGet Gallery | ScottPlot.WinForms 4.1.45

PlotBarObsoleteでしたが、使えはしたので4.0でも同様かと思います。

pointY2[5] = 2000 の部分だけ、棒グラフを黒にしたいのです。

同じSeries内で色を変える機能はないんじゃないですかね。
「積み上げ棒グラフ」でやっているように、2つ重ねればそれっぽくはなります。
ScottPlot 4.0.47 Cookbook
Plot Type: Bar Graph - ScottPlot 4.1 Cookbook

cs

1using ScottPlot; 2 3namespace Qk3nxoyj1s3oc3y 4{ 5 public partial class Form1 : Form 6 { 7 public Form1() 8 { 9 InitializeComponent(); 10 11 var formsPlot1 = new FormsPlot { Dock = DockStyle.Fill, Parent = this, }; 12 13 // ScottPlot 4.0 14 var pointY2 = new double[] { 500, 500, 500, 500, 500, 2000, 500, 500, 500, 500, 500, 500 }; 15 formsPlot1.Plot.PlotBar(DataGen.Consecutive(pointY2.Length), pointY2, showValues: true); 16 pointY2 = new double[] { 0, 0, 0, 0, 0, 2000, 0, 0, 0, 0, 0, 0 }; 17 formsPlot1.Plot.PlotBar(DataGen.Consecutive(pointY2.Length), pointY2, fillColor: Color.Black); 18 19 20 // ScottPlot 4.1 21 //var pointY2 = new double[] { 500, 500, 500, 500, 500, 2000, 500, 500, 500, 500, 500, 500 }; 22 //formsPlot1.Plot.AddBar(pointY2).ShowValuesAboveBars = true; 23 //pointY2 = new double[] { 0, 0, 0, 0, 0, 2000, 0, 0, 0, 0, 0, 0 }; 24 //formsPlot1.Plot.AddBar(pointY2, Color.Black); 25 //formsPlot1.Plot.SetAxisLimits(yMin: 0); 26 27 formsPlot1.Render(); 28 } 29 } 30}

アプリ画像


いろいろサイトを見た所、円グラフの場合は、特定の部分だけ色を変えるのがあったのですが、棒グラフでの対応がわからないのです。

まずは公式サイトを見たらどうですか。
わたしは英語は全くダメですが、自動翻訳で読むだけで大方わかりますよ。

投稿2022/05/07 10:49

編集2023/07/30 08:08
TN8001

総合スコア10049

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yasu47

2022/05/07 11:02

回答ありがとうございました。参考になりました。 次からは使用ライブラリ・バージョン等を記載する様にします。 ちなみに、私はNuGet Gallery | ScottPlot.WinForms 4.1.40 でした。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.31%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問