質問編集履歴

1

コード等の追記を行いました。

2019/03/13 08:01

投稿

kuniyan
kuniyan

スコア13

test CHANGED
File without changes
test CHANGED
@@ -9,3 +9,213 @@
9
9
 
10
10
 
11
11
  何かいい方法がありましたら、教えていただければ幸いです。
12
+
13
+
14
+
15
+ **-- 現在**
16
+
17
+ ```C#
18
+
19
+ class Data
20
+
21
+ {
22
+
23
+ public double ID { get; set; }
24
+
25
+ public DateTime date { get; set; }
26
+
27
+ public string Items { get; set; }
28
+
29
+ public double Value1 { get; set; }
30
+
31
+ public double Value2 { get; set; }
32
+
33
+ }
34
+
35
+ ```
36
+
37
+ ```C#
38
+
39
+ class Test
40
+
41
+ {
42
+
43
+ public ReactiveCollection<Data> Datas { get; } = new ReactiveCollection<Data>();
44
+
45
+
46
+
47
+      public void GePlots()
48
+
49
+ {
50
+
51
+ // テスト用にデータを入れる
52
+
53
+ for (int i = 0; i < 5; i++)
54
+
55
+ {
56
+
57
+ var item = "XXXX" + i.ToString();
58
+
59
+ double v1 = 52.0 + i;
60
+
61
+ double v2 = 61.0 + i;
62
+
63
+ int i2 = i + 1;
64
+
65
+ string dt = "2019/01/0" + i2.ToString();
66
+
67
+ Datas.Add(new Data { ID = i, date = DateTime.Parse(dt), items = lot, Value1 = v1, Value2 = v2 });
68
+
69
+ }
70
+
71
+
72
+
73
+
74
+
75
+ var plotTest = new PlotModel()
76
+
77
+ {
78
+
79
+ PlotAreaBorderColor = OxyColors.LightGray,
80
+
81
+ TextColor = OxyColors.LightGray
82
+
83
+ };
84
+
85
+
86
+
87
+   // OxyPlot X軸
88
+
89
+ var axisX = new LinearAxis()
90
+
91
+ {
92
+
93
+ Title = "Time",
94
+
95
+ Position = AxisPosition.Bottom,
96
+
97
+ TickStyle = TickStyle.None,
98
+
99
+ MajorGridlineStyle = LineStyle.Solid,
100
+
101
+ MajorGridlineColor = OxyColors.Gray,
102
+
103
+ StringFormat = "yyyy/MM/dd",
104
+
105
+ Angle = -90
106
+
107
+ };
108
+
109
+
110
+
111
+ // OxyPlot Y軸
112
+
113
+ var axisY = new LinearAxis()
114
+
115
+ {
116
+
117
+ Title = "Values",
118
+
119
+ Position = AxisPosition.Left,
120
+
121
+ TickStyle = TickStyle.None,
122
+
123
+ MajorGridlineStyle = LineStyle.Solid,
124
+
125
+ MajorGridlineColor = OxyColors.Gray,
126
+
127
+ MinorGridlineStyle = LineStyle.Dot,
128
+
129
+ MinorGridlineColor = OxyColors.Gray
130
+
131
+ };
132
+
133
+
134
+
135
+
136
+
137
+ plotTest.Series.Add(new LineSeries()
138
+
139
+ {
140
+
141
+
142
+
143
+ Title = "Value1",
144
+
145
+ ItemsSource = Datas,
146
+
147
+ DataFieldX = "date",
148
+
149
+ DataFieldY = "Value1",
150
+
151
+ //MarkerType = MarkerType.Circle,
152
+
153
+ MarkerSize = 3,
154
+
155
+ //MarkerStroke = OxyColors.Red,
156
+
157
+ MarkerStrokeThickness = 1,
158
+
159
+ //MarkerFill = OxyColors.Red,
160
+
161
+ //Color = OxyColors.Red,
162
+
163
+ IsVisible = chkPT201.Value,
164
+
165
+ RenderInLegend = true
166
+
167
+ });
168
+
169
+
170
+
171
+ plotTest.Series.Add(new LineSeries()
172
+
173
+ {
174
+
175
+ Title = "Value2",
176
+
177
+ ItemsSource = Datas,
178
+
179
+ DataFieldX = "date",
180
+
181
+ DataFieldY = "Value2",
182
+
183
+ //MarkerType = MarkerType.Circle,
184
+
185
+ MarkerSize = 3,
186
+
187
+ //MarkerStroke = OxyColors.Red,
188
+
189
+ MarkerStrokeThickness = 1,
190
+
191
+ MarkerFill = OxyColors.Red,
192
+
193
+ //Color = OxyColors.Red,
194
+
195
+ IsVisible = chkPT201.Value,
196
+
197
+ RenderInLegend = true
198
+
199
+ });
200
+
201
+ }
202
+
203
+ }
204
+
205
+ ```
206
+
207
+ (適当で申し訳ありません)
208
+
209
+ ![イメージ説明](2f799f2f016dfac53d11431916b688f3.jpeg)
210
+
211
+
212
+
213
+ **-- 理想**
214
+
215
+  各LineSeriesの DataFieldXに"Items"の項目(XXXX0-4)を表示するのが理想です。
216
+
217
+   LabelFormatterを使おうと考えましたが案の定できませんでした。。
218
+
219
+   また、LinearAxis以外の軸も試してみましたが、文字列が許容されていそうなものは見当たりません。
220
+
221
+  この程度の情報で申し訳ありませんがよろしくお願いいたします。