Microsoft Chart Control で3Dグラフを回転、表示/停止 |
下記サンプルは、必ず、CSVファイルを使っての基本的なグラフの表示 をご覧になってからお試しください。 Private Sub Button24_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Button24.Click 'Microsoft Chart Control で 3Dグラフを回転、表示/停止 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 End With '------------- ここまでは、基本的な表示設定と同じ ----------------------------------------- '■------------------- 3Dグラフを回転表示 ----------------Start--■ 'グラフ エリアを 3D で表示する場合は true。2D で表示する場合は false。既定値は false Chart1.ChartAreas(0).Area3DStyle.Enable3D = True '3D 表示にする場合 'Button24_Click 毎に回転 表示/停止 を切り換え If Timer1.Interval = 100 Then Timer1.Interval = 200 Timer1.Start() Else Timer1.Interval = 100 '初期値に戻す Timer1.Stop() End If End Sub Private r1 As Integer = 1 '一回に回転する度数 Private r2 As Integer = 1 '適当に変更して見てください。 'できれば、System.Windows.Forms.Timer ではなくて、System.Timers.Timer の方を使ってください。 Private Sub Timer1_Elapsed(ByVal sender As System.Object, _ ByVal e As System.Timers.ElapsedEventArgs) Handles Timer1.Elapsed With Chart1 '3D グラフ エリアの水平軸を中心とする回転の角度を取得または設定 If .ChartAreas(0).Area3DStyle.Inclination >= 90 Then .ChartAreas(0).Area3DStyle.Inclination = -90 End If .ChartAreas(0).Area3DStyle.Inclination += r1 '3D グラフ エリアの垂直軸を中心とする回転の角度を取得または設定 If .ChartAreas(0).Area3DStyle.Rotation >= 180 Then .ChartAreas(0).Area3DStyle.Rotation = -180 End If .ChartAreas(0).Area3DStyle.Rotation += r2 '3D グラフ エリアのライティングのスタイルをリアルなライティングのスタイルに設定 .ChartAreas(0).Area3DStyle.LightStyle = LightStyle.Realistic End With End Sub |
上記コードの実行結果 |
ツールボックスから System.Windows.Forms.Timer を1個追加しておいてください。 初期値は、 Timer1.Enabled = False Timer1.Interval = 100 にプロパティで設定しておいてください。 できれば、System.Windows.Forms.Timer ではなくて、System.Timers.Timer の方を使ってください。 |