您好我正在尝试将自定义标记与高图散点图一起使用。我正面临一些问题
这是我到目前为止能够实现的目标(Fiddle) 我试图绘制的标记就像
相关代码
<script>
$(document).ready(function(){
var yAxisSeries = [9.2,7.6,9.6,4.7,9.6,{y:54.4, fillColor:'#FF0000'}];
var xAxisCategories = ['speech1','speech2','speech3','speech4','speech5','speech6'];
// Define a custom symbol path
Highcharts.SVGRenderer.prototype.symbols.pointer = function (x, y, w, h) {
return ['M', x, y,
'L',x,y-h,x+w,y-h,x+w,y,
'L',x+w,y+h,x,y+h,x,y,
'z'];
};
if (Highcharts.VMLRenderer) {
Highcharts.VMLRenderer.prototype.symbols.pointer = Highcharts.SVGRenderer.prototype.symbols.pointer;
}
var chartOptions = {
chart: {
},
plotOptions: {
series: {
pointWidth: 20
},
column: {
pointPlacement: 'on',
clip :false,
pointWidth :'30'
}
},
credits: {
enabled: false
},
title: {
text: ''
},
subtitle: {
text: ''
},
xAxis: [{
gridLineWidth: 2,
lineColor: '#000',
tickColor: '#000',
gridLineDashStyle:'ShortDash',
categories:xAxisCategories,
gridLineColor:'#000',
tickmarkPlacement:'on'
}],
yAxis: [{ // Primary yAxis
gridLineWidth: 1,
allowDecimals : true,
gridLineDashStyle:'ShortDash',
gridLineColor:'#9ACD9D',
labels: {
style: {
color: '#9ACD9D'
}
},
}],
legend: {
align: 'left',
x: 120,
verticalAlign: 'top',
y: 100,
floating: true,
backgroundColor: '#FFFFFF'
},
series: [{
name: '',
color: '#89A54E',
type: 'scatter',
data: yAxisSeries,
marker: {
fillColor: 'red',
symbol: 'pointer',
},
tooltip: {
valueSuffix: ''
},
showInLegend:false
}]
};
$('#test').highcharts(chartOptions);
})
</script>
<div id="test" style='width:700px'></div>
任何建议都会有所帮助
答案 0 :(得分:2)
您正在使用路径渲染rect,然后您需要手动设置圆角,阅读有关SVG路径的更多信息:http://www.w3.org/TR/SVG11/paths.html#PathDataCurveCommands
工作演示:http://jsfiddle.net/56Nh9/1/
Highcharts.SVGRenderer.prototype.symbols.pointer = function (x, y, w, h) {
return ['M', x, y,
'C',x,y-h,x+w,y-h,x+w,y,
'C',x+w,y+h,x,y+h,x,y,
'z'];
};
width
和height
计算为radius
的值,请参阅:http://jsfiddle.net/56Nh9/2/