mirror of
https://github.com/hustcc/echarts-for-react.git
synced 2025-12-08 20:16:09 +00:00
* chore: bump version to 3.0.4 and update ECharts dependency to 6.0.0 (#601) * docs: update README to reflect ECharts version support for v6.0.0 * fix: standardize formatting and improve code readability in dynamic, simple, and theme examples * chore: update npm install script --------- Co-authored-by: tangweikun <819573105@qq.com> Co-authored-by: hustcc <i@hust.cc>
132 lines
2.8 KiB
Markdown
132 lines
2.8 KiB
Markdown
---
|
|
title: Theme
|
|
order: 3
|
|
---
|
|
|
|
## Theme
|
|
|
|
```tsx
|
|
import React, { useState } from 'react';
|
|
import * as echarts from 'echarts';
|
|
import ReactECharts from 'echarts-for-react';
|
|
|
|
echarts.registerTheme('my_theme', {
|
|
backgroundColor: '#f4cccc',
|
|
});
|
|
echarts.registerTheme('another_theme', {
|
|
backgroundColor: '#eee',
|
|
});
|
|
|
|
const Page: React.FC = () => {
|
|
const option = {
|
|
title: {
|
|
text: '阶梯瀑布图',
|
|
subtext: 'From ExcelHome',
|
|
sublink: 'http://e.weibo.com/1341556070/Aj1J2x5a5',
|
|
},
|
|
tooltip: {
|
|
trigger: 'axis',
|
|
axisPointer: {
|
|
// 坐标轴指示器,坐标轴触发有效
|
|
type: 'shadow', // 默认为直线,可选为:'line' | 'shadow'
|
|
},
|
|
},
|
|
legend: {
|
|
data: ['支出', '收入'],
|
|
},
|
|
grid: {
|
|
left: '3%',
|
|
right: '4%',
|
|
bottom: '15%',
|
|
containLabel: true,
|
|
},
|
|
xAxis: {
|
|
type: 'category',
|
|
splitLine: { show: false },
|
|
data: [
|
|
'11月1日',
|
|
'11月2日',
|
|
'11月3日',
|
|
'11月4日',
|
|
'11月5日',
|
|
'11月6日',
|
|
'11月7日',
|
|
'11月8日',
|
|
'11月9日',
|
|
'11月10日',
|
|
'11月11日',
|
|
],
|
|
},
|
|
yAxis: {
|
|
type: 'value',
|
|
},
|
|
series: [
|
|
{
|
|
name: '辅助',
|
|
type: 'bar',
|
|
stack: '总量',
|
|
itemStyle: {
|
|
normal: {
|
|
barBorderColor: 'rgba(0,0,0,0)',
|
|
color: 'rgba(0,0,0,0)',
|
|
},
|
|
emphasis: {
|
|
barBorderColor: 'rgba(0,0,0,0)',
|
|
color: 'rgba(0,0,0,0)',
|
|
},
|
|
},
|
|
data: [0, 900, 1245, 1530, 1376, 1376, 1511, 1689, 1856, 1495, 1292],
|
|
},
|
|
{
|
|
name: '收入',
|
|
type: 'bar',
|
|
stack: '总量',
|
|
label: {
|
|
normal: {
|
|
show: true,
|
|
position: 'top',
|
|
},
|
|
},
|
|
data: [900, 345, 393, '-', '-', 135, 178, 286, '-', '-', '-'],
|
|
},
|
|
{
|
|
name: '支出',
|
|
type: 'bar',
|
|
stack: '总量',
|
|
label: {
|
|
normal: {
|
|
show: true,
|
|
position: 'bottom',
|
|
},
|
|
},
|
|
data: ['-', '-', '-', 108, 154, '-', '-', '-', 119, 361, 203],
|
|
},
|
|
],
|
|
};
|
|
|
|
const [theme, setTheme] = useState();
|
|
const [className, setClassName] = useState('class_1');
|
|
|
|
function toggleTheme() {
|
|
setTheme(theme === 'my_theme' ? 'another_theme' : 'my_theme');
|
|
}
|
|
|
|
function toggleClassName() {
|
|
setClassName(className === 'class_1' ? 'class_2' : 'class_1');
|
|
}
|
|
|
|
return (
|
|
<>
|
|
<ReactECharts option={option} className={className} theme={theme} style={{ height: 400 }} />
|
|
<br />
|
|
<div>
|
|
<button onClick={toggleTheme}>Click to Toggle theme.</button>
|
|
<button onClick={toggleClassName}>Click to Toggle className.</button>
|
|
</div>
|
|
</>
|
|
);
|
|
};
|
|
|
|
export default Page;
|
|
```
|