C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[1]: グラフの横軸の数値を揃える方法


(過去ログ 137 を表示中)

[トピック内 10 記事 (1 - 10 表示)]  << 0 >>

■80863 / inTopicNo.1)  グラフの横軸の数値を揃える方法
  
□投稿者/ あ (26回)-(2016/08/15(Mon) 19:11:00)

分類:[.NET 全般] 


VB.NETを使って
計測機器を使って得られたデータをグラフ化したいのですが
二次元配列data_hai2に以下のような数値データ入っています。

0 0
0.9765625 0
1.953125 0
2.9296875 0.014350949
3.90625 0.059239302



994.140625 0.112135597
995.1171875 0.101589717
996.09375 0.06027548
997.0703125 0.078097314
998.046875 0.086384051
999.0234375 0.046108715

左がx軸で右がy軸の値になっています。

これを以下のコードでグラフ化したものがこの画像です。
http://fast-uploader.com/file/7026811267536/


Dim dt As New DataTable
Dim row As DataRow

'列設定
dt.Columns.Add(" ")
dt.Columns.Add("ch1")

For i = 0 To data_pt - 1

row = dt.NewRow

row(0) = data_hai2(0, i)
row("ch1") = data_hai2(1, i) * Unit_hosei

dt.Rows.Add(row)
Next



With Chart1

.Series.Clear()

'データバインド.
.DataSource = dt

'系列追加.
For i = 1 To dt.Columns.Count - 1

Dim columnName As String = dt.Columns(i).ColumnName

.Series.Add(columnName)
'折れ線グラフに設定.
.Series(columnName).ChartType = DataVisualization.Charting.SeriesChartType.Line
'X軸
.Series(columnName).XValueMember = dt.Columns(0).ColumnName
'Y軸
.Series(columnName).YValueMembers = columnName

Next


End With

このように、y軸は600,400,200と綺麗な整数になっているのですが
x軸が194.3359などのように綺麗な整数になっていません。

Excelの散布図のようにこれを綺麗な数値にしたいのですが
どうすれば良いですか?

引用返信 編集キー/
■80867 / inTopicNo.2)  Re[1]: グラフの横軸の数値を揃える方法
□投稿者/ 真田昌幸 (29回)-(2016/08/16(Tue) 09:26:55)
No80863 (あ さん) に返信
> このように、y軸は600,400,200と綺麗な整数になっているのですが
> x軸が194.3359などのように綺麗な整数になっていません。

目盛のプロパティーを設定してないだけでは?

↓以下でも該当プロパティーを探してください。
http://blog.hiros-dot.net/?p=2099


引用返信 編集キー/
■80869 / inTopicNo.3)  Re[1]: グラフの横軸の数値を揃える方法
□投稿者/ WebSurfer (1004回)-(2016/08/16(Tue) 10:34:02)
No80863 (あ さん) に返信

直接の回答ではなくてすみませんが・・・

Windows Forms Chart Control を使っているのですよね? であればサンプルは持ってい
るでしょうか?

持っているなら以下はスルーしてください。

持っていなければ MSDN のサイトからサンプルを入手できるので、ダウンロードして動く
ように設定することをお勧めします。解説が英語であるのを厭わなければサンプルは今後
の開発に有益なものになると思います。

このスレッドの質問者さんの問題がサンプルを見ると解決するかどうかは分かりませんが、
解決のためのヒントはあるかもしれません(Chart Features > Axes > Overview や Axis
Lable Interval とかに)。

解決できなくとも、今後の開発に役立つはずですので、ダウンロードして設定する手間を
かけても損はないと思います。

サンプルの入手先や設定手順は以下の記事にありますので、興味があれば見てください。

Chart Samples
http://surferonwww.info/BlogEngine/post/2016/02/14/chart-samples.aspx
引用返信 編集キー/
■80871 / inTopicNo.4)  Re[2]: グラフの横軸の数値を揃える方法
□投稿者/ あ (27回)-(2016/08/16(Tue) 10:59:27)
お二方ありがとうございます。

intervalで設定できることは分かっているのですが
これはデータ点数の中で何点ごとにticksをつけるのかという設定で
間隔を変えることはできるのですが
データ点数以外の場所にticksをつけることができません。
同じくmaximumやminimumもデータ点数の中で何番目を一番上and下にするかという設定で
数値を直接入力することができません。

教えてくださった
https://code.msdn.microsoft.com/mschart

webページも見てみましたが
sampleは4つしかなく、散布図グラフはないようなのですが・・・
 
引用返信 編集キー/
■80874 / inTopicNo.5)  Re[3]: グラフの横軸の数値を揃える方法
□投稿者/ 真田昌幸 (31回)-(2016/08/16(Tue) 11:28:38)
No80871 (あ さん) に返信

> intervalで設定できることは分かっているのですが
> これはデータ点数の中で何点ごとにticksをつけるのかという設定で
> 間隔を変えることはできるのですが
> データ点数以外の場所にticksをつけることができません。
> 同じくmaximumやminimumもデータ点数の中で何番目を一番上and下にするかという設定で
> 数値を直接入力することができません。

最初と疑問点が変わってませんか?
初めの「X軸が整数にならない」の解決は、
intervalを整数にすれば解決する気がしますが。

何がやりたくて、どこに疑問点がある、うまくいかないかを明確にすべきかと。


引用返信 編集キー/
■80875 / inTopicNo.6)  Re[4]: グラフの横軸の数値を揃える方法
□投稿者/ あ (29回)-(2016/08/16(Tue) 11:40:35)
上で説明したように
intervalの値は数値を入力するものではなく
データ点数の間隔を入力する仕様になっています
そのため、ここを整数に設定してもうまくいきません

引用返信 編集キー/
■80878 / inTopicNo.7)  Re[3]: グラフの横軸の数値を揃える方法
□投稿者/ WebSurfer (1005回)-(2016/08/16(Tue) 12:45:22)
No80871 (あ さん) に返信

> 教えてくださった
> https://code.msdn.microsoft.com/mschart
>
> webページも見てみましたが
> sampleは4つしかなく、散布図グラフはないようなのですが・・・

「sampleは4つしかなく」というのは https://code.msdn.microsoft.com/mschart のページに
ある図のサンプルが 4 つしかないと言ってます? だとすると、私のレスを理解されてないよ
うです。

そのページからサンプルをダウンロードして動くようにすれば山ほどサンプルはあります。紹介
した記事、

Chart Samples
http://surferonwww.info/BlogEngine/post/2016/02/14/chart-samples.aspx

はきちんと読んでもらってますか?
引用返信 編集キー/
■80882 / inTopicNo.8)  Re[4]: グラフの横軸の数値を揃える方法
□投稿者/ SS (1回)-(2016/08/16(Tue) 13:33:11)
No80875 (あ さん) に返信
X軸のMinimum/Maximumプロパティが"Auto"のため、少数値になっていることが原因だと思われます。
ChartArea.AxisXのMinimum/Maximumプロパティを設定するか、
ChartArea.AxisX.RoundAxisValuesメソッドを呼び出すかのどちらかで対処できると思います。

例1
  Chart1.ChartAreas(0).AxisX.Minimum = 0
  Chart1.ChartAreas(0).AxisX.Maximum = 1000

例2
  Chart1.ChartAreas(0).AxisX.RoundAxisValues()

引用返信 編集キー/
■80883 / inTopicNo.9)  Re[5]: グラフの横軸の数値を揃える方法
□投稿者/ 真田昌幸 (34回)-(2016/08/16(Tue) 13:45:06)
No80875 (あ さん) に返信
> 上で説明したように
> intervalの値は数値を入力するものではなく
> データ点数の間隔を入力する仕様になっています
> そのため、ここを整数に設定してもうまくいきません
>

何を根拠に?
まず、MSDNとか聞いた情報のサイトをしっかり読んだ方がよいと思いますが。
引用返信 編集キー/
■80888 / inTopicNo.10)  Re[1]: グラフの横軸の数値を揃える方法
□投稿者/ shu (905回)-(2016/08/17(Wed) 08:19:06)
No80863 (あ さん) に返信
>
> '列設定
> dt.Columns.Add(" ")
> dt.Columns.Add("ch1")
>
全体はよくみてませんがここは
このままだと列の型が文字列になってしまいます。
dt.Columns.Add(" ", GetType(〜))
のようにされたほうがよいです。
さらに" " => "x" など分かりやい列名を付けた方がよいです。


引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -