Skip to content

Commit 46389c7

Browse files
author
jhwong
authored
feat(v2/candle): add candle plot (#1502)
* feat(v2/candle): add candle plot fix: 修改cr問題 feat(v2/candle): add candle plot fix: 删除isConnectNulls默认配置 chore: 删除ieldFormat配置,暂时要求源数据date格式为Date或YYYY-MM-DD等常见格式 * refactor: 修改图表名称
1 parent 471a7dd commit 46389c7

File tree

10 files changed

+705
-0
lines changed

10 files changed

+705
-0
lines changed

__tests__/data/stock.ts

+310
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,310 @@
1+
export const kdata = [
2+
{ date: '2015-11-19', start: 8.18, max: 8.33, min: 7.98, end: 8.32, volumn: 1810, money: 14723.56 },
3+
{ date: '2015-11-18', start: 8.37, max: 8.6, min: 8.03, end: 8.09, volumn: 2790.37, money: 23309.19 },
4+
{ date: '015-11-17', start: 8.7, max: 8.78, min: 8.32, end: 8.37, volumn: 3729.04, money: 31709.71 },
5+
{ date: '2015-11-16', start: 8.18, max: 8.69, min: 8.05, end: 8.62, volumn: 3095.44, money: 26100.69 },
6+
{ date: '2015-11-13', start: 8.01, max: 8.75, min: 7.97, end: 8.41, volumn: 5815.58, money: 48562.37 },
7+
{ date: '2015-11-12', start: 7.76, max: 8.18, min: 7.61, end: 8.15, volumn: 4742.6, money: 37565.36 },
8+
{ date: '2015-11-11', start: 7.55, max: 7.81, min: 7.49, end: 7.8, volumn: 3133.82, money: 24065.42 },
9+
{ date: '2015-11-10', start: 7.5, max: 7.68, min: 7.44, end: 7.57, volumn: 2670.35, money: 20210.58 },
10+
{ date: '2015-11-09', start: 7.65, max: 7.66, min: 7.3, end: 7.58, volumn: 2841.79, money: 21344.36 },
11+
{ date: '2015-11-06', start: 7.52, max: 7.71, min: 7.48, end: 7.64, volumn: 2725.44, money: 20721.51 },
12+
{ date: '2015-11-05', start: 7.48, max: 7.57, min: 7.29, end: 7.48, volumn: 3520.85, money: 26140.83 },
13+
{ date: '2015-11-04', start: 7.01, max: 7.5, min: 7.01, end: 7.46, volumn: 3591.47, money: 26285.52 },
14+
{ date: '2015-11-03', start: 7.1, max: 7.17, min: 6.82, end: 7, volumn: 2029.21, money: 14202.33 },
15+
{ date: '2015-11-02', start: 7.09, max: 7.44, min: 6.93, end: 7.17, volumn: 3191.31, money: 23205.11 },
16+
{ date: '2015-10-30', start: 6.98, max: 7.27, min: 6.84, end: 7.18, volumn: 3522.61, money: 25083.44 },
17+
{ date: '2015-10-29', start: 6.94, max: 7.2, min: 6.8, end: 7.05, volumn: 2752.27, money: 19328.44 },
18+
{ date: '2015-10-28', start: 7.01, max: 7.14, min: 6.8, end: 6.85, volumn: 2311.11, money: 16137.32 },
19+
{ date: '2015-10-27', start: 6.91, max: 7.31, min: 6.48, end: 7.18, volumn: 3172.9, money: 21827.3 },
20+
{ date: '2015-10-26', start: 6.9, max: 7.08, min: 6.87, end: 6.95, volumn: 2769.31, money: 19337.44 },
21+
];
22+
23+
export const SH000001 = [
24+
{
25+
ts_code: '000001.SH',
26+
trade_date: '20200313',
27+
close: 2887.4265,
28+
open: 2804.2322,
29+
high: 2910.8812,
30+
low: 2799.9841,
31+
pre_close: 2923.4856,
32+
change: -36.0591,
33+
pct_chg: -1.2334,
34+
vol: 366450436,
35+
amount: 393019665.2,
36+
},
37+
{
38+
ts_code: '000001.SH',
39+
trade_date: '20200312',
40+
close: 2923.4856,
41+
open: 2936.0163,
42+
high: 2944.4651,
43+
low: 2906.2838,
44+
pre_close: 2968.5174,
45+
change: -45.0318,
46+
pct_chg: -1.517,
47+
vol: 307778457,
48+
amount: 328209202.4,
49+
},
50+
{
51+
ts_code: '000001.SH',
52+
trade_date: '20200311',
53+
close: 2968.5174,
54+
open: 3001.7616,
55+
high: 3010.0286,
56+
low: 2968.5174,
57+
pre_close: 2996.7618,
58+
change: -28.2444,
59+
pct_chg: -0.9425,
60+
vol: 352470970,
61+
amount: 378766619,
62+
},
63+
{
64+
ts_code: '000001.SH',
65+
trade_date: '20200310',
66+
close: 2996.7618,
67+
open: 2918.9347,
68+
high: 3000.2963,
69+
low: 2904.7989,
70+
pre_close: 2943.2907,
71+
change: 53.4711,
72+
pct_chg: 1.8167,
73+
vol: 393296648,
74+
amount: 425017184.8,
75+
},
76+
{
77+
ts_code: '000001.SH',
78+
trade_date: '20200309',
79+
close: 2943.2907,
80+
open: 2987.1805,
81+
high: 2989.2051,
82+
low: 2940.7138,
83+
pre_close: 3034.5113,
84+
change: -91.2206,
85+
pct_chg: -3.0061,
86+
vol: 414560736,
87+
amount: 438143854.6,
88+
},
89+
{
90+
ts_code: '000001.SH',
91+
trade_date: '20200306',
92+
close: 3034.5113,
93+
open: 3039.9395,
94+
high: 3052.4439,
95+
low: 3029.4632,
96+
pre_close: 3071.6771,
97+
change: -37.1658,
98+
pct_chg: -1.21,
99+
vol: 362061533,
100+
amount: 377388542.7,
101+
},
102+
{
103+
ts_code: '000001.SH',
104+
trade_date: '20200305',
105+
close: 3071.6771,
106+
open: 3036.1545,
107+
high: 3074.2571,
108+
low: 3022.9262,
109+
pre_close: 3011.6657,
110+
change: 60.0114,
111+
pct_chg: 1.9926,
112+
vol: 445425806,
113+
amount: 482770471.4,
114+
},
115+
{
116+
ts_code: '000001.SH',
117+
trade_date: '20200304',
118+
close: 3011.6657,
119+
open: 2981.806,
120+
high: 3012.0035,
121+
low: 2974.3583,
122+
pre_close: 2992.8968,
123+
change: 18.7689,
124+
pct_chg: 0.6271,
125+
vol: 353338278,
126+
amount: 389893917.5,
127+
},
128+
{
129+
ts_code: '000001.SH',
130+
trade_date: '20200303',
131+
close: 2992.8968,
132+
open: 3006.8888,
133+
high: 3026.842,
134+
low: 2976.623,
135+
pre_close: 2970.9312,
136+
change: 21.9656,
137+
pct_chg: 0.7394,
138+
vol: 410108047,
139+
amount: 447053681.5,
140+
},
141+
{
142+
ts_code: '000001.SH',
143+
trade_date: '20200302',
144+
close: 2970.9312,
145+
open: 2899.31,
146+
high: 2982.5068,
147+
low: 2899.31,
148+
pre_close: 2880.3038,
149+
change: 90.6274,
150+
pct_chg: 3.1465,
151+
vol: 367333369,
152+
amount: 397244201.2,
153+
},
154+
{
155+
ts_code: '000001.SH',
156+
trade_date: '20200228',
157+
close: 2880.3038,
158+
open: 2924.6407,
159+
high: 2948.1261,
160+
low: 2878.5443,
161+
pre_close: 2991.3288,
162+
change: -111.025,
163+
pct_chg: -3.7116,
164+
vol: 401216914,
165+
amount: 432657775,
166+
},
167+
{
168+
ts_code: '000001.SH',
169+
trade_date: '20200227',
170+
close: 2991.3288,
171+
open: 2992.4919,
172+
high: 3009.4575,
173+
low: 2980.4774,
174+
pre_close: 2987.9287,
175+
change: 3.4001,
176+
pct_chg: 0.1138,
177+
vol: 350523658,
178+
amount: 395955641.5,
179+
},
180+
{
181+
ts_code: '000001.SH',
182+
trade_date: '20200226',
183+
close: 2987.9287,
184+
open: 2978.4195,
185+
high: 3028.7788,
186+
low: 2974.9423,
187+
pre_close: 3013.0501,
188+
change: -25.1214,
189+
pct_chg: -0.8338,
190+
vol: 469049552,
191+
amount: 495341447.3,
192+
},
193+
{
194+
ts_code: '000001.SH',
195+
trade_date: '20200225',
196+
close: 3013.0501,
197+
open: 2982.0696,
198+
high: 3016.9458,
199+
low: 2943.7168,
200+
pre_close: 3031.2333,
201+
change: -18.1832,
202+
pct_chg: -0.5999,
203+
vol: 441622762,
204+
amount: 513128644.6,
205+
},
206+
{
207+
ts_code: '000001.SH',
208+
trade_date: '20200224',
209+
close: 3031.2333,
210+
open: 3027.8925,
211+
high: 3042.1821,
212+
low: 3007.3557,
213+
pre_close: 3039.6692,
214+
change: -8.4359,
215+
pct_chg: -0.2775,
216+
vol: 370430044,
217+
amount: 451601363.1,
218+
},
219+
{
220+
ts_code: '000001.SH',
221+
trade_date: '20200221',
222+
close: 3039.6692,
223+
open: 3022.2455,
224+
high: 3058.898,
225+
low: 3020.141,
226+
pre_close: 3030.1542,
227+
change: 9.515,
228+
pct_chg: 0.314,
229+
vol: 364557276,
230+
amount: 445062076.7,
231+
},
232+
{
233+
ts_code: '000001.SH',
234+
trade_date: '20200220',
235+
close: 3030.1542,
236+
open: 2981.8802,
237+
high: 3031.3706,
238+
low: 2968.4451,
239+
pre_close: 2975.4019,
240+
change: 54.7523,
241+
pct_chg: 1.8402,
242+
vol: 345732881,
243+
amount: 413761364.1,
244+
},
245+
{
246+
ts_code: '000001.SH',
247+
trade_date: '20200219',
248+
close: 2975.4019,
249+
open: 2979.5223,
250+
high: 2998.2718,
251+
low: 2971.8219,
252+
pre_close: 2984.9716,
253+
change: -9.5697,
254+
pct_chg: -0.3206,
255+
vol: 315141151,
256+
amount: 381331160.4,
257+
},
258+
{
259+
ts_code: '000001.SH',
260+
trade_date: '20200218',
261+
close: 2984.9716,
262+
open: 2981.4097,
263+
high: 2990.6003,
264+
low: 2960.7751,
265+
pre_close: 2983.6224,
266+
change: 1.3492,
267+
pct_chg: 0.0452,
268+
vol: 311665913,
269+
amount: 374998562.6,
270+
},
271+
{
272+
ts_code: '000001.SH',
273+
trade_date: '20200217',
274+
close: 2983.6224,
275+
open: 2924.9913,
276+
high: 2983.6371,
277+
low: 2924.9913,
278+
pre_close: 2917.0077,
279+
change: 66.6147,
280+
pct_chg: 2.2837,
281+
vol: 313198007,
282+
amount: 367014340.1,
283+
},
284+
{
285+
ts_code: '000001.SH',
286+
trade_date: '20200214',
287+
close: 2917.0077,
288+
open: 2899.8659,
289+
high: 2926.9427,
290+
low: 2899.5739,
291+
pre_close: 2906.0735,
292+
change: 10.9342,
293+
pct_chg: 0.3763,
294+
vol: 250650627,
295+
amount: 308080368.7,
296+
},
297+
{
298+
ts_code: '000001.SH',
299+
trade_date: '20200213',
300+
close: 2906.0735,
301+
open: 2927.1443,
302+
high: 2935.406,
303+
low: 2901.2425,
304+
pre_close: 2926.8991,
305+
change: -20.8256,
306+
pct_chg: -0.7115,
307+
vol: 274804844,
308+
amount: 334526327.4,
309+
},
310+
];
+57
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
import { Stock } from '../../../../src';
2+
import { createDiv } from '../../../utils/dom';
3+
import { kdata } from '../../../data/stock';
4+
import { Y_FIELD } from '../../../../src/plots/stock/constant';
5+
6+
describe('Stock axis', () => {
7+
it('axis: options', () => {
8+
const k = new Stock(createDiv(), {
9+
width: 400,
10+
height: 500,
11+
data: kdata,
12+
xField: 'date',
13+
yField: ['start', 'end', 'max', 'min'],
14+
meta: {
15+
[Y_FIELD]: {
16+
nice: true,
17+
},
18+
},
19+
});
20+
21+
k.render();
22+
23+
const geometry = k.chart.geometries[0];
24+
// @ts-ignore
25+
expect(geometry.scales[Y_FIELD].nice).toBe(true);
26+
});
27+
28+
it('axis: alias', () => {
29+
const k = new Stock(createDiv(), {
30+
width: 400,
31+
height: 500,
32+
data: kdata,
33+
xField: 'date',
34+
yField: ['start', 'end', 'max', 'min'],
35+
meta: {
36+
volumn: { alias: '成交量' },
37+
start: { alias: '开盘价' },
38+
end: { alias: '收盘价' },
39+
max: { alias: '最高价' },
40+
min: { alias: '最低价' },
41+
},
42+
});
43+
44+
k.render();
45+
46+
const geometry = k.chart.geometries[0];
47+
48+
// @ts-ignore
49+
expect(geometry.scales['start'].alias).toBe('开盘价');
50+
// @ts-ignore
51+
expect(geometry.scales['end'].alias).toBe('收盘价');
52+
// @ts-ignore
53+
expect(geometry.scales['max'].alias).toBe('最高价');
54+
// @ts-ignore
55+
expect(geometry.scales['min'].alias).toBe('最低价');
56+
});
57+
});

0 commit comments

Comments
 (0)