質問するログイン新規登録

回答編集履歴

1

見直しキャンペーン中

2023/07/23 06:55

投稿

TN8001
TN8001

スコア10176

answer CHANGED
@@ -1,74 +1,74 @@
1
- 出せるように書き換えるのはわかりますが、実際のコードと乖離が大きいと回答に困ります。
2
- * 使っている形跡のない`ChartArea area`・`Title title`
3
- * 散布図と言っているのに`SeriesChartType.Line`
4
- * 回らないforループ
5
-
6
- > 実際にボタンを押すと、X軸の目盛が勝手に変わって、Datagridviewの値が表示されています。
7
-
8
- おかしいところを直しただけですが、希望通りの表示に見えます。
9
- 提示コード以外の部分に原因があるんじゃないでしょうか。
10
-
11
- ```C#
12
- using System;
13
- using System.Windows.Forms;
14
- using System.Windows.Forms.DataVisualization.Charting;
15
-
16
- namespace Questions294097
17
- {
18
- public partial class Form1 : Form
19
- {
20
- public Form1()
21
- {
22
- InitializeComponent();
23
-
24
- DataGridView();
25
- Chart();
26
- }
27
-
28
- private void DataGridView()
29
- {
30
- dataGridView1.ColumnCount = 2;
31
- dataGridView1.AllowUserToAddRows = false;
32
-
33
- var random = new Random();
34
- var x = 0;
35
- while(true)
36
- {
37
- x += random.Next(300) + 300;
38
- if(16000 < x) break;
39
- dataGridView1.Rows.Add(x, random.Next(50));
40
- }
41
- }
42
-
43
- private void Chart()
44
- {
45
- chart1.Series.Clear();
46
- var series1 = new Series
47
- {
48
- ChartType = SeriesChartType.Point,
49
- };
50
-
51
- for(var row = 0; row < dataGridView1.RowCount; row++)
52
- {
53
- series1.Points.AddXY(dataGridView1.Rows[row].Cells[0].Value, dataGridView1.Rows[row].Cells[1].Value);
54
- }
55
-
56
- chart1.ChartAreas["ChartArea1"].AxisX.IsMarginVisible = true;
57
- chart1.ChartAreas["ChartArea1"].AxisX.Interval = 2000;
58
- chart1.ChartAreas["ChartArea1"].AxisX.Maximum = 16000;
59
- chart1.ChartAreas["ChartArea1"].AxisX.Minimum = 0;
60
-
61
- chart1.ChartAreas["ChartArea1"].AxisY.Minimum = 0;
62
- chart1.ChartAreas["ChartArea1"].AxisY.Maximum = 50;
63
- chart1.ChartAreas["ChartArea1"].AxisY.Interval = 10;
64
-
65
- chart1.ChartAreas["ChartArea1"].AxisX.MajorGrid.Enabled = false;
66
- chart1.ChartAreas["ChartArea1"].AxisY.MajorGrid.Enabled = true;
67
-
68
- chart1.Series.Add(series1);
69
- }
70
- }
71
- }
72
- ```
73
- デザイナで`DataGridView`・`Chart`を置いています。
1
+ 出せるように書き換えるのはわかりますが、実際のコードと乖離が大きいと回答に困ります。
2
+ * 使っている形跡のない`ChartArea area`・`Title title`
3
+ * 散布図と言っているのに`SeriesChartType.Line`
4
+ * 回らないforループ
5
+
6
+ > 実際にボタンを押すと、X軸の目盛が勝手に変わって、Datagridviewの値が表示されています。
7
+
8
+ おかしいところを直しただけですが、希望通りの表示に見えます。
9
+ 提示コード以外の部分に原因があるんじゃないでしょうか。
10
+
11
+ ```cs
12
+ using System;
13
+ using System.Windows.Forms;
14
+ using System.Windows.Forms.DataVisualization.Charting;
15
+
16
+ namespace Questions294097
17
+ {
18
+ public partial class Form1 : Form
19
+ {
20
+ public Form1()
21
+ {
22
+ InitializeComponent();
23
+
24
+ DataGridView();
25
+ Chart();
26
+ }
27
+
28
+ private void DataGridView()
29
+ {
30
+ dataGridView1.ColumnCount = 2;
31
+ dataGridView1.AllowUserToAddRows = false;
32
+
33
+ var random = new Random();
34
+ var x = 0;
35
+ while(true)
36
+ {
37
+ x += random.Next(300) + 300;
38
+ if(16000 < x) break;
39
+ dataGridView1.Rows.Add(x, random.Next(50));
40
+ }
41
+ }
42
+
43
+ private void Chart()
44
+ {
45
+ chart1.Series.Clear();
46
+ var series1 = new Series
47
+ {
48
+ ChartType = SeriesChartType.Point,
49
+ };
50
+
51
+ for(var row = 0; row < dataGridView1.RowCount; row++)
52
+ {
53
+ series1.Points.AddXY(dataGridView1.Rows[row].Cells[0].Value, dataGridView1.Rows[row].Cells[1].Value);
54
+ }
55
+
56
+ chart1.ChartAreas["ChartArea1"].AxisX.IsMarginVisible = true;
57
+ chart1.ChartAreas["ChartArea1"].AxisX.Interval = 2000;
58
+ chart1.ChartAreas["ChartArea1"].AxisX.Maximum = 16000;
59
+ chart1.ChartAreas["ChartArea1"].AxisX.Minimum = 0;
60
+
61
+ chart1.ChartAreas["ChartArea1"].AxisY.Minimum = 0;
62
+ chart1.ChartAreas["ChartArea1"].AxisY.Maximum = 50;
63
+ chart1.ChartAreas["ChartArea1"].AxisY.Interval = 10;
64
+
65
+ chart1.ChartAreas["ChartArea1"].AxisX.MajorGrid.Enabled = false;
66
+ chart1.ChartAreas["ChartArea1"].AxisY.MajorGrid.Enabled = true;
67
+
68
+ chart1.Series.Add(series1);
69
+ }
70
+ }
71
+ }
72
+ ```
73
+ デザイナで`DataGridView`・`Chart`を置いています。
74
74
  ![アプリ画像](73f2e14afe09f91c0132d7db5be11c62.png)