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

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

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

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

WPF

Windows Presentation Foundation (WPF) は、魅力的な外観のユーザー エクスペリエンスを持つ Windows クライアント アプリケーションを作成するための次世代プレゼンテーション システムです

Q&A

解決済

1回答

4962閲覧

OxyPlotの散布図の色を変えたい

siksmtt

総合スコア20

C#

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

WPF

Windows Presentation Foundation (WPF) は、魅力的な外観のユーザー エクスペリエンスを持つ Windows クライアント アプリケーションを作成するための次世代プレゼンテーション システムです

0グッド

0クリップ

投稿2019/02/04 07:08

編集2019/02/04 07:21

前提・実現したいこと

OxyPlotというライブラリを用いてWPFアプリケーションを作っています。
散布図のグラフの色を変えたいのですが、変えられず困っています。
デフォルトでは緑色になっているようですが、他の色に変えたいです。

該当のソースコード

サンプルで作っているので中途半端なMVVMですがご容赦下さい。

C#

1//MainWindow - Codebehind 2using System; 3using System.Collections.Generic; 4using System.Windows; 5using OxyPlot; 6using OxyPlot.Series; 7using OxyPlot.Axes; 8 9 public partial class MainWindow : Window 10 { 11 private MainViewModel mMainViewModel; 12 13 private int count = 0; 14 ScatterSeries mPoint = null; 15 16 public MainWindow() 17 { 18 InitializeComponent(); 19 mMainViewModel = new MainViewModel(); 20 this.DataContext = mMainViewModel; 21 } 22 23 private void OnClicOpenSubWindow(object sender, RoutedEventArgs e) 24 { 25 mMainViewModel.ChartList.Series.Add(mPoint); 26 27 SubWindow subWindow = new SubWindow(mMainViewModel); 28 subWindow.Show(); 29 } 30 31 private void OnClickCountUp(object sender, RoutedEventArgs e) 32 { 33 count++; 34 mMainViewModel.CountVal = count.ToString(); 35 36 if (mPoint == null) 37 { 38 mPoint = new ScatterSeries() { MarkerType = MarkerType.Circle}; 39 } 40 41 //var customAxis = new RangeColorAxis { Key = "customColors" }; 42 //customAxis.AddRange(0, 100, OxyColors.Red); 43 //mMainViewModel.ChartList.Axes.Add(customAxis); 44 //この3行のコメントアウトも試しましたが色が変わっていなかったり、グラフの表示すら消えたりしました。 45 46 mPoint.Points.Add(new ScatterPoint(count, count)); 47 } 48 }

C#

1//MainWindow - ViewModel 2 public class MainViewModel : ViewModelBase 3 { 4 private string count; 5 public string CountVal 6 { 7 get { return count; } 8 set 9 { 10 count = value; 11 NotifyPropertyChanged("CountVal"); 12 } 13 14 } 15 16 private PlotModel chartListVal = new PlotModel(); 17 public PlotModel ChartList 18 { 19 get 20 { 21 return chartListVal; 22 } 23 set 24 { 25 chartListVal = value; 26 NotifyPropertyChanged("ChartList"); 27 } 28 } 29 }

Xaml

1//MainWindow - View 2 <Grid> 3 <Button Content="CountUp" HorizontalAlignment="Left" Height="76" Margin="72,57,0,0" VerticalAlignment="Top" Width="135" Click="OnClickCountUp"/> 4 <Label Content="Count : " HorizontalAlignment="Left" Height="28" Margin="254,73,0,0" VerticalAlignment="Top" Width="53"/> 5 <Label Content="{Binding CountVal}" HorizontalAlignment="Left" Height="28" Margin="307,73,0,0" VerticalAlignment="Top" Width="67"/> 6 7 <Button Content="OpenSubWindow" HorizontalAlignment="Left" Height="74" Margin="342,194,0,0" VerticalAlignment="Top" Width="123" Click="OnClicOpenSubWindow"/> 8 </Grid>

C#

1//SubWindow - View 2 <Grid> 3 <oxy:PlotView Model="{Binding ChartList}" /> 4 </Grid> 5 6//SubWindow - Codebehind 7 public partial class SubWindow : Window 8 { 9 public SubWindow(MainViewModel pMainViewModel) 10 { 11 InitializeComponent(); 12 this.DataContext = pMainViewModel; 13 } 14 }

補足情報

なお本番アプリケーションではグラフのデータ数も増え、色もその都度に変えたいので、ビューに静的定義することは難しいです。
ご助言いただけますと幸いです。

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

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

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

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

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

ebiryo

2019/02/04 11:07

plotする場所に応じて色を変えたいのですか?それとも赤とか緑とか場所に関係なく同じ色表示したいのでしょうか?
siksmtt

2019/02/04 12:15

ebiryo様 コメントありがとうございます。場所関係なく同じ色にしたいです。色の指定方法が分かれば動的に指定する(グラフ毎に指定する)のは自力で出来ると思うのですが、指定方法すら分からず…。
guest

回答1

0

ベストアンサー

単純に色を変えたいだけなら、

C#

1mPoint = new ScatterSeries() 2{ 3 MarkerType = MarkerType.Circle 4 MarkerFill = OxyColors.Blue //<-コレ 5};

で良いのでは?

投稿2019/02/04 23:29

ebiryo

総合スコア797

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

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

siksmtt

2019/02/05 00:27

ebiryo様 ありがとうございます。該当行を追加したところできました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問