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

回答編集履歴

2

見直しキャンペーン中

2023/07/29 09:35

投稿

TN8001
TN8001

スコア10108

answer CHANGED
@@ -5,7 +5,7 @@
5
5
  [Axis.Interval プロパティ (System.Windows.Forms.DataVisualization.Charting) | Microsoft Docs](https://docs.microsoft.com/ja-jp/dotnet/api/system.windows.forms.datavisualization.charting.axis.interval?view=netframework-4.8)
6
6
 
7
7
  これが知りたかったってことでしょうか?
8
- しかし画像のような状態にするには、`AxisX.Interval`をいじってますよね?(この画像もどこかから借りてきてる??)
8
+ しかし画像のような状態にするには、`AxisY.Maximum`をいじってますよね?(この画像もどこかから借りてきてる??)
9
9
 
10
10
  特に何もしなければ左の軸の最大値が40になっていい感じに調整してくれましたが、あくまで最大値は変えたくないということでしょうか?
11
11
 

1

見直しキャンペーン中

2023/07/29 09:31

投稿

TN8001
TN8001

スコア10108

answer CHANGED
@@ -1,175 +1,175 @@
1
- [ChartArea.AxisY プロパティ (System.Windows.Forms.DataVisualization.Charting) | Microsoft Docs](https://docs.microsoft.com/ja-jp/dotnet/api/system.windows.forms.datavisualization.charting.chartarea.axisy?view=netframework-4.8)
2
-
3
- [ChartArea.AxisY2 プロパティ (System.Windows.Forms.DataVisualization.Charting) | Microsoft Docs](https://docs.microsoft.com/ja-jp/dotnet/api/system.windows.forms.datavisualization.charting.chartarea.axisy2?view=netframework-4.8)
4
-
5
- [Axis.Interval プロパティ (System.Windows.Forms.DataVisualization.Charting) | Microsoft Docs](https://docs.microsoft.com/ja-jp/dotnet/api/system.windows.forms.datavisualization.charting.axis.interval?view=netframework-4.8)
6
-
7
- これが知りたかったってことでしょうか?
8
- しかし画像のような状態にするには、`AxisX.Interval`をいじってますよね?(この画像もどこかから借りてきてる??)
9
-
10
- 特に何もしなければ左の軸の最大値が40になっていい感じに調整してくれましたが、あくまで最大値は変えたくないということでしょうか?
11
-
12
- となると`Interval`をいじって、どちらかに合わすしかないですよね?
13
- きれいに割り切れない場合は、当然`Maximum`か`Minimum`をいじるしかないですね(ラベルが3.3333とかじゃイヤすぎますし^^;
14
-
15
- 1. Chart1 できるだけ画像に合わせた場合
16
- 1. Chart2 これといって何もしなかった場合
17
- 1. Chart3 左の軸を右に合わせた場合
18
- 1. Chart4 右の軸を左に合わせた場合
19
-
20
- ```C#
21
- using System.Drawing;
22
- using System.Windows.Forms;
23
- using System.Windows.Forms.DataVisualization.Charting;
24
-
25
- namespace Questions370834
26
- {
27
- public partial class Form1 : Form
28
- {
29
- public Form1()
30
- {
31
- InitializeComponent();
32
-
33
- Chart1();
34
- Chart2();
35
- Chart3();
36
- Chart4();
37
- }
38
-
39
- private void Chart1()
40
- {
41
- chart1.Titles.Add("Chart1");
42
- chart1.Series.Clear();
43
-
44
- var series1 = new Series
45
- {
46
- BorderWidth = 2,
47
- ChartType = SeriesChartType.StepLine,
48
- Color = Color.Cyan,
49
- IsVisibleInLegend = false,
50
- };
51
- var series2 = new Series
52
- {
53
- ChartType = SeriesChartType.Column,
54
- Color = Color.Red,
55
- IsVisibleInLegend = false,
56
- YAxisType = AxisType.Secondary,
57
- };
58
-
59
- for (var i = 0; i < 15; i++)
60
- {
61
- series1.Points.Add(new DataPoint(i, 2.5 * (i + 1)));
62
- series2.Points.Add(new DataPoint(i, 1.25 * (i + 1)));
63
- }
64
-
65
- chart1.ChartAreas[0].AxisX.Interval = 5;
66
- chart1.ChartAreas[0].AxisY.Maximum = 50; // わざとこうしないと提示画像のようにならない
67
-
68
- chart1.Series.Add(series2);
69
- chart1.Series.Add(series1);
70
- }
71
-
72
- private void Chart2()
73
- {
74
- chart2.Titles.Add("Chart2");
75
- chart2.Series.Clear();
76
-
77
- var series1 = new Series
78
- {
79
- BorderWidth = 2,
80
- ChartType = SeriesChartType.StepLine,
81
- Color = Color.Cyan,
82
- IsVisibleInLegend = false,
83
- };
84
- var series2 = new Series
85
- {
86
- ChartType = SeriesChartType.Column,
87
- Color = Color.Red,
88
- IsVisibleInLegend = false,
89
- YAxisType = AxisType.Secondary,
90
- };
91
-
92
- for (var i = 0; i < 15; i++)
93
- {
94
- series1.Points.Add(new DataPoint(i, 2.5 * (i + 1)));
95
- series2.Points.Add(new DataPoint(i, 1.25 * (i + 1)));
96
- }
97
-
98
- chart2.ChartAreas[0].AxisX.Interval = 5;
99
- //chart2.ChartAreas[0].AxisY.Maximum = 50;
100
-
101
- chart2.Series.Add(series2);
102
- chart2.Series.Add(series1);
103
- }
104
-
105
- private void Chart3()
106
- {
107
- chart3.Titles.Add("Chart3");
108
- chart3.Series.Clear();
109
-
110
- var series1 = new Series
111
- {
112
- BorderWidth = 2,
113
- ChartType = SeriesChartType.StepLine,
114
- Color = Color.Cyan,
115
- IsVisibleInLegend = false,
116
- };
117
- var series2 = new Series
118
- {
119
- ChartType = SeriesChartType.Column,
120
- Color = Color.Red,
121
- IsVisibleInLegend = false,
122
- YAxisType = AxisType.Secondary,
123
- };
124
-
125
- for (var i = 0; i < 15; i++)
126
- {
127
- series1.Points.Add(new DataPoint(i, 2.5 * (i + 1)));
128
- series2.Points.Add(new DataPoint(i, 1.25 * (i + 1)));
129
- }
130
-
131
- chart3.ChartAreas[0].AxisX.Interval = 5;
132
- chart3.ChartAreas[0].AxisY.Interval = 12.5;
133
- chart3.ChartAreas[0].AxisY.Maximum = 50;
134
-
135
- chart3.Series.Add(series2);
136
- chart3.Series.Add(series1);
137
- }
138
-
139
- private void Chart4()
140
- {
141
- chart4.Titles.Add("Chart4");
142
- chart4.Series.Clear();
143
-
144
- var series1 = new Series
145
- {
146
- BorderWidth = 2,
147
- ChartType = SeriesChartType.StepLine,
148
- Color = Color.Cyan,
149
- IsVisibleInLegend = false,
150
- };
151
- var series2 = new Series
152
- {
153
- ChartType = SeriesChartType.Column,
154
- Color = Color.Red,
155
- IsVisibleInLegend = false,
156
- YAxisType = AxisType.Secondary,
157
- };
158
-
159
- for (var i = 0; i < 15; i++)
160
- {
161
- series1.Points.Add(new DataPoint(i, 2.5 * (i + 1)));
162
- series2.Points.Add(new DataPoint(i, 1.25 * (i + 1)));
163
- }
164
-
165
- chart4.ChartAreas[0].AxisX.Interval = 5;
166
- chart4.ChartAreas[0].AxisY.Maximum = 50;
167
- chart4.ChartAreas[0].AxisY2.Interval = 4;
168
-
169
- chart4.Series.Add(series2);
170
- chart4.Series.Add(series1);
171
- }
172
- }
173
- }
174
- ```
1
+ [ChartArea.AxisY プロパティ (System.Windows.Forms.DataVisualization.Charting) | Microsoft Docs](https://docs.microsoft.com/ja-jp/dotnet/api/system.windows.forms.datavisualization.charting.chartarea.axisy?view=netframework-4.8)
2
+
3
+ [ChartArea.AxisY2 プロパティ (System.Windows.Forms.DataVisualization.Charting) | Microsoft Docs](https://docs.microsoft.com/ja-jp/dotnet/api/system.windows.forms.datavisualization.charting.chartarea.axisy2?view=netframework-4.8)
4
+
5
+ [Axis.Interval プロパティ (System.Windows.Forms.DataVisualization.Charting) | Microsoft Docs](https://docs.microsoft.com/ja-jp/dotnet/api/system.windows.forms.datavisualization.charting.axis.interval?view=netframework-4.8)
6
+
7
+ これが知りたかったってことでしょうか?
8
+ しかし画像のような状態にするには、`AxisX.Interval`をいじってますよね?(この画像もどこかから借りてきてる??)
9
+
10
+ 特に何もしなければ左の軸の最大値が40になっていい感じに調整してくれましたが、あくまで最大値は変えたくないということでしょうか?
11
+
12
+ となると`Interval`をいじって、どちらかに合わすしかないですよね?
13
+ きれいに割り切れない場合は、当然`Maximum`か`Minimum`をいじるしかないですね(ラベルが3.3333とかじゃイヤすぎますし^^;
14
+
15
+ 1. Chart1 できるだけ画像に合わせた場合
16
+ 1. Chart2 これといって何もしなかった場合
17
+ 1. Chart3 左の軸を右に合わせた場合
18
+ 1. Chart4 右の軸を左に合わせた場合
19
+
20
+ ```cs
21
+ using System.Drawing;
22
+ using System.Windows.Forms;
23
+ using System.Windows.Forms.DataVisualization.Charting;
24
+
25
+ namespace Questions370834
26
+ {
27
+ public partial class Form1 : Form
28
+ {
29
+ public Form1()
30
+ {
31
+ InitializeComponent();
32
+
33
+ Chart1();
34
+ Chart2();
35
+ Chart3();
36
+ Chart4();
37
+ }
38
+
39
+ private void Chart1()
40
+ {
41
+ chart1.Titles.Add("Chart1");
42
+ chart1.Series.Clear();
43
+
44
+ var series1 = new Series
45
+ {
46
+ BorderWidth = 2,
47
+ ChartType = SeriesChartType.StepLine,
48
+ Color = Color.Cyan,
49
+ IsVisibleInLegend = false,
50
+ };
51
+ var series2 = new Series
52
+ {
53
+ ChartType = SeriesChartType.Column,
54
+ Color = Color.Red,
55
+ IsVisibleInLegend = false,
56
+ YAxisType = AxisType.Secondary,
57
+ };
58
+
59
+ for (var i = 0; i < 15; i++)
60
+ {
61
+ series1.Points.Add(new DataPoint(i, 2.5 * (i + 1)));
62
+ series2.Points.Add(new DataPoint(i, 1.25 * (i + 1)));
63
+ }
64
+
65
+ chart1.ChartAreas[0].AxisX.Interval = 5;
66
+ chart1.ChartAreas[0].AxisY.Maximum = 50; // わざとこうしないと提示画像のようにならない
67
+
68
+ chart1.Series.Add(series2);
69
+ chart1.Series.Add(series1);
70
+ }
71
+
72
+ private void Chart2()
73
+ {
74
+ chart2.Titles.Add("Chart2");
75
+ chart2.Series.Clear();
76
+
77
+ var series1 = new Series
78
+ {
79
+ BorderWidth = 2,
80
+ ChartType = SeriesChartType.StepLine,
81
+ Color = Color.Cyan,
82
+ IsVisibleInLegend = false,
83
+ };
84
+ var series2 = new Series
85
+ {
86
+ ChartType = SeriesChartType.Column,
87
+ Color = Color.Red,
88
+ IsVisibleInLegend = false,
89
+ YAxisType = AxisType.Secondary,
90
+ };
91
+
92
+ for (var i = 0; i < 15; i++)
93
+ {
94
+ series1.Points.Add(new DataPoint(i, 2.5 * (i + 1)));
95
+ series2.Points.Add(new DataPoint(i, 1.25 * (i + 1)));
96
+ }
97
+
98
+ chart2.ChartAreas[0].AxisX.Interval = 5;
99
+ //chart2.ChartAreas[0].AxisY.Maximum = 50;
100
+
101
+ chart2.Series.Add(series2);
102
+ chart2.Series.Add(series1);
103
+ }
104
+
105
+ private void Chart3()
106
+ {
107
+ chart3.Titles.Add("Chart3");
108
+ chart3.Series.Clear();
109
+
110
+ var series1 = new Series
111
+ {
112
+ BorderWidth = 2,
113
+ ChartType = SeriesChartType.StepLine,
114
+ Color = Color.Cyan,
115
+ IsVisibleInLegend = false,
116
+ };
117
+ var series2 = new Series
118
+ {
119
+ ChartType = SeriesChartType.Column,
120
+ Color = Color.Red,
121
+ IsVisibleInLegend = false,
122
+ YAxisType = AxisType.Secondary,
123
+ };
124
+
125
+ for (var i = 0; i < 15; i++)
126
+ {
127
+ series1.Points.Add(new DataPoint(i, 2.5 * (i + 1)));
128
+ series2.Points.Add(new DataPoint(i, 1.25 * (i + 1)));
129
+ }
130
+
131
+ chart3.ChartAreas[0].AxisX.Interval = 5;
132
+ chart3.ChartAreas[0].AxisY.Interval = 12.5;
133
+ chart3.ChartAreas[0].AxisY.Maximum = 50;
134
+
135
+ chart3.Series.Add(series2);
136
+ chart3.Series.Add(series1);
137
+ }
138
+
139
+ private void Chart4()
140
+ {
141
+ chart4.Titles.Add("Chart4");
142
+ chart4.Series.Clear();
143
+
144
+ var series1 = new Series
145
+ {
146
+ BorderWidth = 2,
147
+ ChartType = SeriesChartType.StepLine,
148
+ Color = Color.Cyan,
149
+ IsVisibleInLegend = false,
150
+ };
151
+ var series2 = new Series
152
+ {
153
+ ChartType = SeriesChartType.Column,
154
+ Color = Color.Red,
155
+ IsVisibleInLegend = false,
156
+ YAxisType = AxisType.Secondary,
157
+ };
158
+
159
+ for (var i = 0; i < 15; i++)
160
+ {
161
+ series1.Points.Add(new DataPoint(i, 2.5 * (i + 1)));
162
+ series2.Points.Add(new DataPoint(i, 1.25 * (i + 1)));
163
+ }
164
+
165
+ chart4.ChartAreas[0].AxisX.Interval = 5;
166
+ chart4.ChartAreas[0].AxisY.Maximum = 50;
167
+ chart4.ChartAreas[0].AxisY2.Interval = 4;
168
+
169
+ chart4.Series.Add(series2);
170
+ chart4.Series.Add(series1);
171
+ }
172
+ }
173
+ }
174
+ ```
175
175
  ![アプリ画像](21a9a1d480534a863e371b6c01602030.png)