使用react+echarts實(shí)現(xiàn)變化趨勢縮略圖

如上圖,實(shí)現(xiàn)一個(gè)縮略圖。
import React, { useState, useEffect } from 'react';
const ParentCom = () => {
const [data, setData] = useState({});
useEffect(() => {
// 這里可以做一些接口請求等操作
setData({
isSheng: false, value: 11.24, percentage: '2.3%', data: {
xData: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'],
yData: [820, 233, 121, 934, 12, 130, 320],
},
});
},[]);
return <div>
<div>{/*頁面的其他渲染內(nèi)容*/}</div>
<ThumbnailChartsCom
id={'yeasterday-search-time'}
data={data} />
</div>
};
export default ParentCom;
import React, { memo, useEffect, useRef } from 'react';
import { LineChart } from 'echarts/charts';
import { GridComponent } from 'echarts/components';
import * as echarts from 'echarts/core';
import { UniversalTransition } from 'echarts/features';
import { CanvasRenderer } from 'echarts/renderers';
import styles from './index.module.less';
echarts.use([
GridComponent,
LineChart,
CanvasRenderer,
UniversalTransition,
]);
interface IThumbnail {
xData: string[];
yData: number[];
}
const ThumbnailChartsCom = ({ id, data }: { id: string, data: IThumbnail }) => {
const chartRef = useRef<HTMLDivElement>(null);
useEffect(() => {
const chartDom = chartRef.current;
if (!chartDom) return;
const myChart = echarts.init(chartDom);
const option = {
grid: {
top: '0',
left: '0',
right: '0',
bottom: '0',
containLabel: true,
},
// 設(shè)置x軸的類型為類目軸,不顯示邊界間隙
xAxis: {
type: 'category',
boundaryGap: false,
show: false,
// 設(shè)置x軸的數(shù)據(jù)
data: data.xData || [],
},
// 設(shè)置y軸的類型為數(shù)值軸
yAxis: {
type: 'value',
axisTick: { show: false }, // 隱藏 Y 軸的刻度線
axisLabel: { show: false }, // 隱藏 Y 軸的標(biāo)簽
splitLine: {
show: false,
}, // 隱藏 Y 軸的分割線
},
// 設(shè)置圖表的系列數(shù)據(jù)
series: [
{
// 設(shè)置系列數(shù)據(jù)
data: data.yData || [],
type: 'line', // 設(shè)置系列數(shù)據(jù)的類型為折線圖
symbol: 'none', // 不顯示折線圖上的點(diǎn)
smooth: true, // 平滑曲線
lineStyle: {
color: '#375EFF',
},
// 設(shè)置系列數(shù)據(jù)的區(qū)域樣式
areaStyle: {
opacity: 0.3,
},
},
],
};
option && myChart.setOption(option);
const handleResize = () => {
myChart.resize();
};
window.addEventListener('resize', handleResize);
return () => {
window.removeEventListener('resize', handleResize);
myChart.dispose(); // 銷毀ECharts實(shí)例
};
}, [data, id]);
// 返回一個(gè)div元素,用于顯示圖表
return <div ref={chartRef} id={id} className={styles.chartsWrap} />;
};
export default memo(ThumbnailChartsCom);
思路
將折線圖的橫縱軸信息、標(biāo)題、圖例、信息卡、刻度線等全部隱藏起來。
總結(jié)
到此這篇關(guān)于使用react+echarts實(shí)現(xiàn)變化趨勢縮略圖的文章就介紹到這了,更多相關(guān)react+echarts變化趨勢縮略圖內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
javascript中的structuredClone()克隆方法
本文介紹了JavaScript的structuredClone方法,用于在WebWorkers中創(chuàng)建對象的深度副本,避免并發(fā)問題,具有一定的參考價(jià)值,感興趣的可以了解一下2025-07-07
淺談javascript中的 “ && ” 和 “ || ”
本文主要介紹了Javascript中的 “ && ” 和 “ || ”的相關(guān)知識(shí)。具有很好的參考價(jià)值,下面跟著小編一起來看下吧2017-02-02
JavaScript實(shí)現(xiàn)時(shí)間范圍效果
這篇文章主要為大家詳細(xì)介紹了JavaScript實(shí)現(xiàn)時(shí)間范圍效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-05-05
JS實(shí)現(xiàn)的自定義水平滾動(dòng)字體插件完整實(shí)例
這篇文章主要介紹了JS實(shí)現(xiàn)的自定義水平滾動(dòng)字體插件,以完整實(shí)例形式分析了javascript自定義水平滾動(dòng)字體插件的定義、原理與使用技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2016-06-06
JavaScript時(shí)間戳與時(shí)間日期間相互轉(zhuǎn)換
今天做項(xiàng)目遇到這樣的問題,要將獲取到的時(shí)間轉(zhuǎn)換為時(shí)間戳,通過查閱相關(guān)資料,問題順利解決,下面小編把具體實(shí)現(xiàn)代碼分享到腳本之家平臺(tái),需要的朋友參考下2017-12-12
JavaScript常見錯(cuò)誤:“無法讀取未定義的屬性”的原因及解決方案
本文將深入探討“無法讀取未定義的屬性”這一常見JavaScript錯(cuò)誤,分析其成因,提供詳細(xì)的解決方案和最佳實(shí)踐,幫助開發(fā)者有效地預(yù)防和修復(fù)此類問題,感興趣的小伙伴跟著小編一起來看看吧2024-12-12
uniapp如何使用 web-view 與網(wǎng)頁互相通信
這篇文章主要介紹了uniapp如何使用 web-view 與網(wǎng)頁互相通信,在APP中使用 this.$scope.$getAppWebview() 獲取webview對象實(shí)例,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧2024-07-07

