Skip to content

Commit 5857754

Browse files
committed
add horizontal and vertical arrow markers
1 parent 2a03fcd commit 5857754

File tree

4 files changed

+237
-0
lines changed

4 files changed

+237
-0
lines changed

src/components/drawing/symbol_defs.js

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -482,5 +482,69 @@ module.exports = {
482482
needLine: true,
483483
noDot: true,
484484
noFill: true
485+
},
486+
'arrow-up': {
487+
n: 45,
488+
f: function(r) {
489+
var rx = d3.round(r, 2);
490+
var ry = d3.round(r * 2, 2);
491+
return 'M0,0L-' + rx + ',' + ry + 'H' + rx + 'Z';
492+
}
493+
},
494+
'arrow-down': {
495+
n: 46,
496+
f: function(r) {
497+
var rx = d3.round(r, 2);
498+
var ry = d3.round(r * 2, 2);
499+
return 'M0,0L-' + rx + ',-' + ry + 'H' + rx + 'Z';
500+
}
501+
},
502+
'arrow-left': {
503+
n: 47,
504+
f: function(r) {
505+
var rx = d3.round(r * 2, 2);
506+
var ry = d3.round(r, 2);
507+
return 'M0,0L' + rx + ',-' + ry + 'V' + ry + 'Z';
508+
}
509+
},
510+
'arrow-right': {
511+
n: 48,
512+
f: function(r) {
513+
var rx = d3.round(r * 2, 2);
514+
var ry = d3.round(r, 2);
515+
return 'M0,0L-' + rx + ',-' + ry + 'V' + ry + 'Z';
516+
}
517+
},
518+
'arrow-to-bar-up': {
519+
n: 49,
520+
f: function(r) {
521+
var rx = d3.round(r, 2);
522+
var ry = d3.round(r * 2, 2);
523+
return 'M-' + rx + ',0H' + rx + 'M0,0L-' + rx + ',' + ry + 'H' + rx + 'Z';
524+
}
525+
},
526+
'arrow-to-bar-down': {
527+
n: 50,
528+
f: function(r) {
529+
var rx = d3.round(r, 2);
530+
var ry = d3.round(r * 2, 2);
531+
return 'M-' + rx + ',0H' + rx + 'M0,0L-' + rx + ',-' + ry + 'H' + rx + 'Z';
532+
}
533+
},
534+
'arrow-to-bar-left': {
535+
n: 51,
536+
f: function(r) {
537+
var rx = d3.round(r * 2, 2);
538+
var ry = d3.round(r, 2);
539+
return 'M0,-' + ry + 'V' + ry + 'M0,0L' + rx + ',-' + ry + 'V' + ry + 'Z';
540+
}
541+
},
542+
'arrow-to-bar-right': {
543+
n: 52,
544+
f: function(r) {
545+
var rx = d3.round(r * 2, 2);
546+
var ry = d3.round(r, 2);
547+
return 'M0,-' + ry + 'V' + ry + 'M0,0L-' + rx + ',-' + ry + 'V' + ry + 'Z';
548+
}
485549
}
486550
};
43.4 KB
Loading

test/image/mocks/arrow-markers.json

Lines changed: 171 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,171 @@
1+
{
2+
"data": [
3+
{
4+
"type": "scatter",
5+
"mode": "lines+markers",
6+
"line": {
7+
"width": 5,
8+
"color": "black"
9+
},
10+
"marker": {
11+
"line": {
12+
"width": 5,
13+
"color": "black"
14+
},
15+
"color": "yellow",
16+
"size": [
17+
40,
18+
40,
19+
40
20+
],
21+
"symbol": [
22+
0,
23+
"arrow-up",
24+
"arrow-down"
25+
]
26+
},
27+
"x": [
28+
0,
29+
0,
30+
0
31+
],
32+
"y": [
33+
0,
34+
1,
35+
-1
36+
]
37+
},
38+
{
39+
"type": "scatter",
40+
"mode": "lines+markers",
41+
"line": {
42+
"width": 5,
43+
"color": "black"
44+
},
45+
"marker": {
46+
"line": {
47+
"width": 5,
48+
"color": "black"
49+
},
50+
"color": "yellow",
51+
"size": [
52+
40,
53+
40,
54+
40
55+
],
56+
"symbol": [
57+
0,
58+
"arrow-to-bar-up",
59+
"arrow-to-bar-down"
60+
]
61+
},
62+
"x": [
63+
0,
64+
0,
65+
0
66+
],
67+
"y": [
68+
0,
69+
1,
70+
-1
71+
],
72+
"xaxis": "x2",
73+
"yaxis": "y2"
74+
},
75+
{
76+
"type": "scatter",
77+
"mode": "lines+markers",
78+
"line": {
79+
"width": 5,
80+
"color": "black"
81+
},
82+
"marker": {
83+
"line": {
84+
"width": 5,
85+
"color": "black"
86+
},
87+
"color": "yellow",
88+
"size": [
89+
40,
90+
40,
91+
40
92+
],
93+
"symbol": [
94+
0,
95+
"arrow-right",
96+
"arrow-left"
97+
]
98+
},
99+
"y": [
100+
0,
101+
0,
102+
0
103+
],
104+
"x": [
105+
0,
106+
1,
107+
-1
108+
],
109+
"xaxis": "x3",
110+
"yaxis": "y3"
111+
},
112+
{
113+
"type": "scatter",
114+
"mode": "lines+markers",
115+
"line": {
116+
"width": 5,
117+
"color": "black"
118+
},
119+
"marker": {
120+
"line": {
121+
"width": 5,
122+
"color": "black"
123+
},
124+
"color": "yellow",
125+
"size": [
126+
40,
127+
40,
128+
40
129+
],
130+
"symbol": [
131+
0,
132+
"arrow-to-bar-right",
133+
"arrow-to-bar-left"
134+
]
135+
},
136+
"y": [
137+
0,
138+
0,
139+
0
140+
],
141+
"x": [
142+
0,
143+
1,
144+
-1
145+
],
146+
"xaxis": "x4",
147+
"yaxis": "y4"
148+
}
149+
],
150+
"layout": {
151+
"title": {
152+
"text": "<b>arrow</b> and <b>arrow-to-bar</b> markers"
153+
},
154+
"showlegend": false,
155+
"width": 800,
156+
"height": 800,
157+
"margin": {
158+
"t": 80,
159+
"b": 40,
160+
"l": 40,
161+
"r": 40
162+
},
163+
"grid": {
164+
"rows": 2,
165+
"columns": 2,
166+
"xgap": 0.1,
167+
"ygap": 0.1,
168+
"pattern": "independent"
169+
}
170+
}
171+
}

test/jasmine/tests/mock_test.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ var list = [
3838
'animation_bar',
3939
'annotations',
4040
'annotations-autorange',
41+
'arrow-markers',
4142
'automargin-mirror-all',
4243
'automargin-mirror-allticks',
4344
'automargin-multiline-titles',
@@ -1081,6 +1082,7 @@ figs['animation'] = require('@mocks/animation');
10811082
figs['animation_bar'] = require('@mocks/animation_bar');
10821083
// figs['annotations'] = require('@mocks/annotations');
10831084
// figs['annotations-autorange'] = require('@mocks/annotations-autorange');
1085+
figs['arrow-markers'] = require('@mocks/arrow-markers');
10841086
figs['automargin-mirror-all'] = require('@mocks/automargin-mirror-all');
10851087
figs['automargin-mirror-allticks'] = require('@mocks/automargin-mirror-allticks');
10861088
figs['automargin-multiline-titles'] = require('@mocks/automargin-multiline-titles');

0 commit comments

Comments
 (0)