Microsoft Chart Control でカスタムパレットを使って系列の色を独自に設定 |
下記サンプルは、必ず、CSVファイルを使っての基本的なグラフの表示 をご覧になってからお試しください。 Private Sub Button26_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Button26.Click 'Microsoft Chart Control の系列の色をカスタムパレットを使って変更 Call ChartClar(Chart1) '設定を一旦初期値に戻す。(通常は必要ありません。) With Chart1 For i As Integer = 1 To colums Dim columnName As String = ds.Tables(0).Columns(i).ColumnName.ToString() '系列の設定(国語・数学等) .Series.Add(columnName) 'グラフの種類を縦棒グラフに設定 .Series(columnName).ChartType = DataVisualization.Charting.SeriesChartType.Column 'X 軸のラベルテキストの読込・設定(浅野等の氏名) .Series(columnName).XValueMember = ds.Tables(0).Columns(0).ColumnName.ToString() 'グラフ用のデータの読込・設定(点数) .Series(columnName).YValueMembers = columnName Next '------------- ここまでは、基本的な表示設定と同じ ----------------------------------------- '■----------------- 系列の色をカスタムパレットを使って変更 ---------------------Start--■ '既定では、BrightPastel に設定されているので、None(パレットは使用しない) に設定 Chart1.Palette = ChartColorPalette.None '既定値に変更して試して見てください。 'Chart1.Palette = ChartColorPalette.Excel 'Excel のグラフと同じ色使いになる '独自のカラー配列を作成(カラーはお好みで) Dim myPalet() As Color = {Color.DeepSkyBlue, Color.DeepPink, Color.ForestGreen, _ Color.HotPink, Color.BlueViolet, Color.Lime} 'カスタム パレット カラーの配列を myPalet に設定 '(Palette プロパティが、None に設定されていないとこのプロパティは無効になる 'Chart1.Palette プロパティで設定した値が優先して使用されるので、None に設定しなければ '既定値の BrightPastel が設定されているので myPalet は無効となる) Chart1.PaletteCustomColors = myPalet '■------------------------------------------------------------------------------End----■ End With End Sub |
上記コードの実行結果 カスタムパレットカラーを使った場合 ChartColorPalette.Excel を使用した場合 |
出来あがったコード自体はたいして複雑なコードでもないのだが、Chart1.Palette = ChartColorPalette.None のように設定しておかないと、カスタムパレットが有効にならない等の設定方法が解らず、色々調べたり試行錯誤を繰り返してやっと カスタムパレット が使えたので、今までカラー配列変数で設定していたやり方をこの方法に変更するようにしてください。 |