Highcharts 默认不支持 rtl。当放置像希伯来语/阿拉伯语这样的 rtl 文本时,文本会被完全破坏,使其有时无法阅读。如何配置 HighCharts 以支持 RTL?
如果有帮助,我正在使用 dotnetHighCharts...
Highcharts 默认不支持 rtl。当放置像希伯来语/阿拉伯语这样的 rtl 文本时,文本会被完全破坏,使其有时无法阅读。如何配置 HighCharts 以支持 RTL?
如果有帮助,我正在使用 dotnetHighCharts...
试试这个代码: 演示
var chart = new Highcharts.Chart({
chart: {
style:{
direction: 'rtl'
},
renderTo: 'container',
type: 'column'
},
xAxis: {
categories: [
' تست a',
'حسن',
'كريم',
'محمود'
],
reversed: true
},
yAxis: {
labels: {
useHTML: true,
format: '{value} متر مربع'
},
title: {
text: 'الاسم الأول',
useHTML: true
},
},
title: {
text: 'تست a',
useHTML: true
},
legend: {
useHTML: true
},
tooltip: {
useHTML: true
},
series: [{
name: 'تست',
data: [10000,30000,20000,40000]
}]});
只需添加useHTML: true
到图表的绘图选项即可。在此处查看演示jsfiddle.net/3me9h7k2
或者
var chart = new Highcharts.Chart({
chart: {
renderTo: 'container',
type: 'pie'
},
title: {
text: 'یک نمودار؟!',
useHTML: true, //bug fixed `IE9` and `EDGE`
style: {
fontSize: '20px',
fontFamily: 'tahoma',
direction: 'rtl',
},
},
tooltip: {
useHTML: true,
style: {
fontSize: '20px',
fontFamily: 'tahoma',
direction: 'rtl',
},
},
plotOptions: {
pie: {
allowPointSelect: true,
cursor: 'pointer',
dataLabels: {
enabled: true,
y: -5, //Optional
format: '\u202B' + '{point.name}', // \u202B is RLE char for RTL support
style: {
fontSize: '15px',
fontFamily: 'tahoma',
textShadow: false, //bug fixed IE9 and EDGE
},
useHTML: true,
},
//showInLegend: true,
},
},
series: [{
name: 'برند',
colorByPoint: true,
data: [{
name: 'اینترنت اکسپلورر؟!',
y: 56.33
}, {
name: 'کروم؟!',
y: 24.03,
}, {
name: 'فایرفکس؟!',
y: 10.38
}, {
name: 'سفاری؟!',
y: 4.77
}, {
name: 'اوپرا؟!',
y: 0.91
}, {
name: 'دیگر؟!',
y: 0.2
}],
}],
});
您可以在文本中使用RLE
(从右到左嵌入的开始)控制字符。像这样:
format: '\u202B' + '{point.name}'
示例代码:
var chart = new Highcharts.Chart({
chart: {
renderTo: 'container',
type: 'pie'
},
title: {
text: 'یک نمودار؟!',
useHTML: true, //bug fixed `IE9` and `EDGE`
style: {
fontSize: '20px',
fontFamily: 'tahoma',
direction: 'rtl',
},
},
tooltip: {
useHTML: true,
style: {
fontSize: '20px',
fontFamily: 'tahoma',
direction: 'rtl',
},
},
plotOptions: {
pie: {
allowPointSelect: true,
cursor: 'pointer',
dataLabels: {
enabled: true,
y: -5, //Optional
format: '\u202B' + '{point.name}', // \u202B is RLE char for RTL support
style: {
fontSize: '15px',
fontFamily: 'tahoma',
textShadow: false, //bug fixed IE9 and EDGE
},
},
},
},
series: [{
name: 'برند',
colorByPoint: true,
data: [{
name: 'اینترنت اکسپلورر؟!',
y: 56.33
}, {
name: 'کروم؟!',
y: 24.03,
}, {
name: 'فایرفکس؟!',
y: 10.38
}, {
name: 'سفاری؟!',
y: 4.77
}, {
name: 'اوپرا؟!',
y: 0.91
}, {
name: 'دیگر؟!',
y: 0.2
}],
}],
});
完整的代码在这里在线查看:https ://jsfiddle.net/NabiKAZ/h4kv0t9v/4/
在选项中有一个属性:“useHtml”:true,如果您需要在标题中添加样式:{方向:rtl},它可以工作!
只要
title: {
text: 'یک نمودار؟!',
useHTML: true,
},
legend: {
rtl: true,
},
将为您完成工作。
你可以设置方向ltr
样本:
<div id="container" style="direction: ltr"></div>