使用Echarts绘制柱状图
创作时间:
作者:
@小白创作中心
使用Echarts绘制柱状图
引用
CSDN
1.
https://blog.csdn.net/qq_52569656/article/details/137844107
基础柱状图绘制
在React18项目中使用Echarts5绘制柱状图,首先需要定义一个容器并设置其宽高。然后通过init
方法创建一个Echarts实例,并调用实例对象上的setOption
方法进行渲染。
添加常用配置
在基础图表上,可以添加一些常用配置,如图例(legend)和提示框(tooltip),使图表更加完整和易读。
同一图表展示两个柱状图
有时需要在一个图表中展示两种数据的对比,例如数量和百分比。这可以通过在series
数组中新增一项柱状图配置来实现。
设置两条坐标轴
当图表中包含不同类型的数据时,可以设置两条坐标轴来区分。例如,一个表示数量,另一个表示百分比。
处理数据量过多的问题
当数据量特别大时,可以使用dataZoom
组件来处理。通过设置start
和end
属性,可以控制图表的显示范围。
处理X轴文字过长问题
当X轴的文字过长时,可以通过设置axisLabel
的rotate
属性来旋转文字,或者通过formatter
函数来换行显示。
完整代码
import './App.css';
import { useEffect, useState } from 'react';
import * as echarts from 'echarts'
let chartRef = null
function App() {
const initChart = () => {
chartRef = echarts.init(document.getElementById('chart'))
const option = {
title: {
text: '北极星',
textStyle: {
color: '#345345'
}
},
tooltip: {},
legend: {
data: [
{
name: '数量图',
icon: 'circle'
},
{
name: '占比图',
icon: 'circle'
}
],
itemWidth: 25,
itemHeight: 14,
},
xAxis: {
type: 'category',
data: ['大白', '小黑', '哈哈', '呵呵', '嘿嘿', '北极星超级超级超级超级', '超级', '小黑3', '你干嘛', '恶狠狠', '嘿嘿9'],
axisPointer: {
show: true,
type: 'line',
},
axisLabel: {
rotate: 23,
fontSize: 11,
formatter: (params) => {
if (params.length > 6) {
const pre = params.slice(0, 6)
const end = params.slice(6)
return pre + '\n' + end
}
return params
}
}
},
yAxis: [
{
type: 'value',
name: '单位:个',
position: "left",
},
{
type: 'value',
name: '百分比:%',
position: "right",
}
],
color: ['#73c0de', '#3ba272'],
series: [
{
name: '数量图',
type: 'bar',
data: [ 1200, 200, 150, 800, 170, 110, 130, 150, 800, 170, 110],
yAxisIndex: 0,
barGap: '2%',
label: {
show: true,
position: 'top',
distance: 5
}
},
{
name: '占比图',
type: 'bar',
yAxisIndex: 1,
data: [ 12, 20, 15, 8, 17, 11, 29, 15, 8, 17, 11],
label: {
show: true,
position: 'top',
distance: 5
}
},
],
dataZoom: [
{
type: 'slider',
height: 20,
start: 2,
end: 70
}
]
}
chartRef.setOption(option)
}
useEffect(() => {
initChart()
}, [])
return (
<div className="App">
<div className='box' id='chart'></div>
</div>
);
}
export default App;
/* App.css */
.App {
display: flex;
align-items: center;
justify-content: center;
padding-top: 50px;
}
.box {
width: 700px;
height: 500px;
border: 1px solid #000;
}
热门推荐
阑尾炎须知
春天养肝,吃菠菜不如多吃这4菜,养肝排毒又护眼,营养又好吃!
春季养肝正当时!5个不起眼的小习惯,对肝脏竟有大好处
地质专家解读贵州安龙"金字塔":2.3亿年前古海洋遗存的地质奇观
面试时如何打理头发?这份实用指南请收好
直播间爆粉:企业微信的直播营销策略
胃寒的人能喝红茶吗?饮食建议与日常调养全攻略
红茶热性还是寒性?红茶的寒热性质对身体有何影响
人流量监测识别摄像机:智能监控设备助力人流管理
清明雨诗词五首:清明节,雨晴天,归路草和烟
民政局婚姻登记流程详解
月薪10000元个人所得税计算:详细解读与实际应用
探秘秦始皇陵:地宫的真实性与神秘
暑假游学趋势分析:热门目的地与活动
故障排查:永不过时的技能
运动数据分析,优化你的健康生活方式
订单排到深秋!兼职“泰山陪爬”的大学生:不是导游,我们一对一服务
住房贷款利率调整后还款额度如何变化
兰州汽车限行规定、时间、限号区域、规则
2025年广东中考体育考试项目及评分标准
紫檀手串保养小建议
冬季穿衣指南:科学解读"三明治穿衣法"与羽绒服选购要点
2025年1月出生的龙宝宝取名字:精选100个吉祥好名
劳务合同报酬的税务处理及法律分析
气凝胶隔热材料与传统材料在船舶管路隔热中的应用对比(附案例数据)
海上事故与海洋安全应急预案
如何提高电脑视频画质的方法(如何提高电脑视频亮度)
如何树立项目经理的威信
使动用法和意动用法的区别 二者有何不同
导游证报考条件:法律法规与实践操作指南