質問編集履歴

4

最後の一文を追記しました

2020/01/14 07:15

投稿

hiro0215
hiro0215

スコア15

test CHANGED
File without changes
test CHANGED
@@ -177,3 +177,7 @@
177
177
  何か良い方法は無いでしょうか?
178
178
 
179
179
  質問の仕方がおかしいかもしれませんが、どうかよろしくおねがいします。
180
+
181
+
182
+
183
+ 追記:どうやらカスタムラベルという物を使えばやりたいことが出来そうなのですが使い方がわかりません・・・。

3

chartとやりたい事を足しました

2020/01/14 07:15

投稿

hiro0215
hiro0215

スコア15

test CHANGED
File without changes
test CHANGED
@@ -158,11 +158,19 @@
158
158
 
159
159
  ```
160
160
 
161
+ ![イメージ説明](3fe8b219edbf7b794410e220b4fa9b3b.jpeg)
162
+
163
+
164
+
161
165
  ボタンを押すとtextファイルを読み込んでchartエリアにグラフを表示します。
162
166
 
163
167
  textデータには「12:34:56」といった形の時間データと数値データが大量に入っています。これをListに格納後、DataPointのX軸に入れています。
164
168
 
165
- 現状だとグラフ作成時に勝手に配置された時間がラベルで表示されているので、時間軸の最小値や任意の時間区切りにしたいのですが、Listに入れたままだとstring型なのでdouble型としてX軸のMinimumなどの値に使う事ができません。
169
+ 現状だとグラフ作成時に勝手に配置された時間がラベルで表示されているので、時間軸の最小値や任意の時間区切りにしたいのですが、Listに入れたままだと型なのでdouble型としてX軸のMinimumなどの値に使う事ができません。
170
+
171
+
172
+
173
+ このグラフの場合ですとX軸の起点を12:00:00と表示し、その後1時間毎に目盛りと線を13:00:00,14:00:00・・・最後を17:00:00と表示したいとかんがえています。
166
174
 
167
175
 
168
176
 

2

文章を少し訂正しました

2019/12/26 04:41

投稿

hiro0215
hiro0215

スコア15

test CHANGED
File without changes
test CHANGED
@@ -160,7 +160,7 @@
160
160
 
161
161
  ボタンを押すとtextファイルを読み込んでchartエリアにグラフを表示します。
162
162
 
163
- textデータには「12:34:56」といった形時間データが大量に入っています。これをListに格納後、DataPointのX軸に入れています。
163
+ textデータには「12:34:56」といった形時間データと数値データが大量に入っています。これをListに格納後、DataPointのX軸に入れています。
164
164
 
165
165
  現状だとグラフ作成時に勝手に配置された時間がラベルで表示されているので、時間軸の最小値や任意の時間区切りにしたいのですが、Listに入れたままだとstring型なのでdouble型としてX軸のMinimumなどの値に使う事ができません。
166
166
 

1

現在のコードを追加しました。

2019/12/26 02:00

投稿

hiro0215
hiro0215

スコア15

test CHANGED
File without changes
test CHANGED
@@ -10,9 +10,159 @@
10
10
 
11
11
 
12
12
 
13
- textデータには「12:34:56」といった形で時間のデータが大量に入っています。これを配列に格納後、DataPointのX軸に入れています。
13
+ ```C#
14
14
 
15
+ using System;
16
+
17
+ using System.Collections.Generic;
18
+
19
+ using System.Text;
20
+
21
+ using System.Windows.Forms;
22
+
23
+ using System.IO;
24
+
25
+ using System.Windows.Forms.DataVisualization.Charting;
26
+
27
+
28
+
29
+ namespace グラフ
30
+
31
+ {
32
+
33
+ public partial class Form1 : Form
34
+
35
+ {
36
+
37
+ public Form1()
38
+
39
+ {
40
+
41
+ InitializeComponent();
42
+
43
+ }
44
+
45
+
46
+
47
+
48
+
49
+
50
+
51
+ private void button1_Click(object sender, EventArgs e)
52
+
53
+ {
54
+
55
+ //textファイルから読み込み
56
+
57
+ int a = 0;
58
+
59
+ List<string> list = new List<string>();
60
+
61
+ StreamReader sr = new StreamReader("textファイルのパス", Encoding.Default);
62
+
63
+ while (sr.Peek() >= 0)
64
+
65
+ {
66
+
67
+ string line = "";
68
+
69
+
70
+
71
+ while ((line = sr.ReadLine()) != null)
72
+
73
+ {
74
+
75
+ a++;
76
+
77
+ list.Add(line);
78
+
79
+ }
80
+
81
+
82
+
83
+ }
84
+
85
+ sr.Close();
86
+
87
+ sr.Dispose();
88
+
89
+
90
+
91
+ string legend = "グラフ1";
92
+
93
+
94
+
95
+ chart1.Series.Clear(); //グラフ初期化
96
+
97
+ chart1.ChartAreas[0].AxisY.Maximum = 2.5;
98
+
99
+ chart1.ChartAreas[0].AxisY.Minimum = 1.5;
100
+
101
+ chart1.Series.Add(legend); //グラフ追加
102
+
103
+ chart1.Series[legend].ChartType =SeriesChartType.Line;//折れ線グラフ
104
+
105
+ chart1.Series[legend].LegendText = legend; //凡例に表示するテキストを指定
106
+
107
+
108
+
109
+ for (int i = 0; i < chart1.Series.Count; i++)//凡例非表示
110
+
111
+ {
112
+
113
+ chart1.Series[i].IsVisibleInLegend = false;
114
+
115
+ chart1.Series[i].IsValueShownAsLabel = false;
116
+
117
+ }
118
+
119
+
120
+
121
+ for (int n = 0; n <a; n++)
122
+
123
+ {
124
+
125
+ string[] xValues = new string[] { list[n].Substring(0,8) };//(時間部分「12:34:56」)
126
+
127
+ string[] yValues = new string[] { list[n].Substring(12,4) };//(数値部分「2.34」等)
128
+
129
+
130
+
131
+ for (int i = 0; i < xValues.Length; i++)
132
+
133
+ {
134
+
135
+ //グラフに追加するデータクラスを生成
136
+
137
+ DataPoint dp = new DataPoint();
138
+
139
+ dp.SetValueXY(xValues[i], yValues[i]); //XとYの値を設定
140
+
141
+ dp.IsValueShownAsLabel = false ; //グラフに値を表示するように指定
142
+
143
+ chart1.Series[legend].Points.Add(dp); //グラフにデータ追加
144
+
145
+ }
146
+
147
+ }
148
+
149
+ }
150
+
151
+ }
152
+
153
+ }
154
+
155
+
156
+
157
+
158
+
159
+ ```
160
+
161
+ ボタンを押すとtextファイルを読み込んでchartエリアにグラフを表示します。
162
+
163
+ textデータには「12:34:56」といった形で時間のデータが大量に入っています。これをListに格納後、DataPointのX軸に入れています。
164
+
15
- 現状だとグラフ作成時に勝手に配置された時間がラベルで表示されているので時間区切りにしたいのですが、配列に入れたままだとstring型なのでdouble型としてMinimumなどの値に使う事ができません。
165
+ 現状だとグラフ作成時に勝手に配置された時間がラベルで表示されているので時間軸の最小値や任意の時間区切りにしたいのですが、Listに入れたままだとstring型なのでdouble型としてX軸のMinimumなどの値に使う事ができません。
16
166
 
17
167
 
18
168