研究了好久,发现ucharts的资料比较少,目前还不支持倒挂图的形式,于是修改了源码,在绘制面板的过程中进行旋转。
主要的思想来源就是进行内容的旋转以及翻转
中心思想,也是全部的代码,不可缺少,都需要写
<canvas style="transform: scale(1,-1);" canvas-id="canvasColumn" id="canvasColumn2" class="charts" ></canvas>
这段打匹配,必须写,将图表倒挂,下面的代码是配合倒挂,旋转对应的文字内容
context.save();//保存之前的动作行为
context.scale(1, -1); //此处可根据自己的需要调整,我是垂直翻转,因为是倒挂图
context.fillText(值(各种值,legend title 数据点 XY轴的内容), X坐标(放正常的X),Y坐标-注意:因为我是垂直翻转,所以改变而就是Y 要写成 -Y 其中Y是正常的坐标);----最后可能有一些误差 基本在0-10左右 根据实际情况调整,调整Y就可以
context.restore();//回归正轨 必须写 否则会影响后续代码
下面粘贴一部分的源码,留给大家举一反三,可以的,是u-charts.js的内容 搜索一下就可以
function drawPointText(points, series, config, context) { //这只是一个方法 里面还有好多 根据需要自行修改 灵魂都是一样的
// 绘制数据文案
var data = series.data;
points.forEach(function(item, index) {
if (item !== null) {
//var formatVal = series.format ? series.format(data[index]) : data[index];
context.beginPath();
context.setFontSize(series.textSize || config.fontSize);
context.setFillStyle(series.textColor || '#666666');
var value = data[index]
if (typeof data[index] === 'object' && data[index] !== null) {
if (data[index].constructor == Array) {
value = data[index][1];
} else {
value = data[index].value
}
}
var formatVal = series.format ? series.format(value) : value;
context.save();
context.scale(1, -1);
context.fillText(String(formatVal), item.x - measureText(formatVal, series.textSize || config.fontSize) / 2-2, -1*(item.y -
4) + 9);
context.restore(); 旋转部分
// context.fillText(String(formatVal), item.x - measureText(formatVal, series.textSize || config.fontSize) / 2, item.y -
// 4); 原来的代码,自行比对 X Y 哈
context.closePath();
context.stroke();
}
});
}