vue+F2生成折線圖的方法
本文實(shí)例為大家分享了vue+F2生成折線圖的具體代碼,供大家參考,具體內(nèi)容如下
1、效果圖

2、打開(kāi)命令窗口,通過(guò) npm 安裝F2
npm install @antv/f2 --save
3、使用 import 或 require 引入F2
const F2 = require('@antv/f2');4、在頁(yè)面上創(chuàng)建一個(gè)具備寬高的 canvas 標(biāo)簽,并指定 id:
<template> ? <div class="container"> ? ? <canvas id="myChart"></canvas> ? </div> </template>
5、編寫(xiě)圖表繪制代碼
<template>
? <div class="container">
? ? <canvas id="myChart"></canvas>
? </div>
</template>
<script>
const F2 = require("@antv/f2");
export default {
? name: "aaa",
? data() {
? ? return {
? ? ? chartData: [
? ? ? ? {
? ? ? ? ? date: "2017-06-05",
? ? ? ? ? value: 116
? ? ? ? },
? ? ? ? {
? ? ? ? ? date: "2017-06-06",
? ? ? ? ? value: 129
? ? ? ? },
? ? ? ? {
? ? ? ? ? date: "2017-06-07",
? ? ? ? ? value: 135
? ? ? ? },
? ? ? ? {
? ? ? ? ? date: "2017-06-08",
? ? ? ? ? value: 86
? ? ? ? },
? ? ? ? {
? ? ? ? ? date: "2017-06-09",
? ? ? ? ? value: 73
? ? ? ? },
? ? ? ? {
? ? ? ? ? date: "2017-06-10",
? ? ? ? ? value: 85
? ? ? ? },
? ? ? ? {
? ? ? ? ? date: "2017-06-11",
? ? ? ? ? value: 73
? ? ? ? },
? ? ? ? {
? ? ? ? ? date: "2017-06-12",
? ? ? ? ? value: 68
? ? ? ? },
? ? ? ? {
? ? ? ? ? date: "2017-06-13",
? ? ? ? ? value: 92
? ? ? ? },
? ? ? ? {
? ? ? ? ? date: "2017-06-14",
? ? ? ? ? value: 130
? ? ? ? },
? ? ? ? {
? ? ? ? ? date: "2017-06-15",
? ? ? ? ? value: 245
? ? ? ? },
? ? ? ? {
? ? ? ? ? date: "2017-06-16",
? ? ? ? ? value: 139
? ? ? ? },
? ? ? ? {
? ? ? ? ? date: "2017-06-17",
? ? ? ? ? value: 115
? ? ? ? },
? ? ? ? {
? ? ? ? ? date: "2017-06-18",
? ? ? ? ? value: 111
? ? ? ? },
? ? ? ? {
? ? ? ? ? date: "2017-06-19",
? ? ? ? ? value: 309
? ? ? ? },
? ? ? ? {
? ? ? ? ? date: "2017-06-20",
? ? ? ? ? value: 206
? ? ? ? },
? ? ? ? {
? ? ? ? ? date: "2017-06-21",
? ? ? ? ? value: 137
? ? ? ? },
? ? ? ? {
? ? ? ? ? date: "2017-06-22",
? ? ? ? ? value: 128
? ? ? ? },
? ? ? ? {
? ? ? ? ? date: "2017-06-23",
? ? ? ? ? value: 85
? ? ? ? },
? ? ? ? {
? ? ? ? ? date: "2017-06-24",
? ? ? ? ? value: 94
? ? ? ? }
? ? ? ]
? ? };
? },
? created() {},
? methods: {
? ? drawChart() {
? ? ? var _this = this;
? ? ? // Step 1: 創(chuàng)建 Chart 對(duì)象
? ? ? const chart = new F2.Chart({
? ? ? ? id: "myChart",
? ? ? ? pixelRatio: window.devicePixelRatio // 指定分辨率
? ? ? });
? ? ? // Step 2: 載入數(shù)據(jù)源
? ? ? chart.source(_this.chartData, {
? ? ? ? value: {
? ? ? ? ? tickCount: 10, // 坐標(biāo)軸上刻度點(diǎn)的個(gè)數(shù)
? ? ? ? ? min: 50, // 手動(dòng)指定value字段最小值
? ? ? ? ? max: 350 // 手動(dòng)指定value字段最大值
? ? ? ? },
? ? ? ? date: {
? ? ? ? ? type: "timeCat", // 指定date字段為時(shí)間類(lèi)型
? ? ? ? ? range: [0, 0.8], // 占x軸80%
? ? ? ? ? tickCount: 3 // 坐標(biāo)軸上刻度點(diǎn)的個(gè)數(shù)
? ? ? ? }
? ? ? });
? ? ? // Step 3:使用圖形語(yǔ)法進(jìn)行圖表的繪制
? ? ? // 注意:f2是移動(dòng)端圖表庫(kù),只有在移動(dòng)端才能顯示圖例
? ? ? chart.tooltip({
? ? ? ? custom: true, // 是否自定義 tooltip 提示框
? ? ? ? showXTip: true, // 是否展示 X 軸的輔助信息
? ? ? ? showYTip: true, // 是否展示 Y 軸的輔助信息
? ? ? ? snap: true, // 是否將輔助線準(zhǔn)確定位至數(shù)據(jù)點(diǎn)
? ? ? ? crosshairsType: "xy", // 輔助線的種類(lèi)
? ? ? ? crosshairsStyle: {
? ? ? ? ? // 配置輔助線的樣式
? ? ? ? ? lineDash: [2], // 點(diǎn)線的密度
? ? ? ? ? stroke: "rgba(255, 0, 0, 0.25)",
? ? ? ? ? lineWidth: 2
? ? ? ? }
? ? ? });
? ? ? // 坐標(biāo)軸配置(此處是為date對(duì)應(yīng)的坐標(biāo)軸進(jìn)行配置)
? ? ? chart.axis("date", {
? ? ? ? label: function label(text, index, total) {
? ? ? ? ? const textCfg = {
? ? ? ? ? ? textAlign: "center"
? ? ? ? ? };
? ? ? ? ? // 第一個(gè)點(diǎn)左對(duì)齊,最后一個(gè)點(diǎn)右對(duì)齊,其余居中,只有一個(gè)點(diǎn)時(shí)左對(duì)齊
? ? ? ? ? if (index === 0) {
? ? ? ? ? ? textCfg.textAlign = "left";
? ? ? ? ? } else if (index === total - 1) {
? ? ? ? ? ? textCfg.textAlign = "right";
? ? ? ? ? }
? ? ? ? ? textCfg.text = "day: " + text; // textCfg.text 支持文本格式化處理
? ? ? ? ? return textCfg;
? ? ? ? }
? ? ? });
? ? ? // 點(diǎn)按照 x 軸連接成一條線,構(gòu)成線圖
? ? ? chart.line().position("date*value");
? ? ? // Step 4: 渲染圖表
? ? ? chart.render();
? ? }
? },
? components: {},
? mounted() {
? ? var _this = this;
? ? _this.drawChart();
? },
? computed: {},
? watch: {}
};
</script>
<style scoped>
.container {
? ? background-color: #fff;
}
#myChart {
? ? width: 100%;
? ? height: 260px;
}
</style>以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Vue生態(tài)系統(tǒng)工具庫(kù)Vueuse的使用示例詳解
Vueuse 是一個(gè)功能強(qiáng)大的 Vue.js 生態(tài)系統(tǒng)工具庫(kù),它提供了一系列的可重用的 Vue 組件和函數(shù),本文將介紹 Vueuse 的主要特點(diǎn)和用法,以及它在 Vue.js 開(kāi)發(fā)中的作用和優(yōu)勢(shì),感興趣的可以了解下2024-02-02
webpack 3 + Vue2 使用dotenv配置多環(huán)境的步驟
這篇文章主要介紹了webpack 3 + Vue2 使用dotenv配置多環(huán)境,env文件在配置文件都可以用, vue頁(yè)面用的時(shí)候需要在 webpack.base.conf.js 重新配置,需要的朋友可以參考下2023-11-11
vue打包部署到tomcat上頁(yè)面空白資源加載不出來(lái)的解決
這篇文章主要介紹了vue打包部署到tomcat上頁(yè)面空白資源加載不出來(lái)的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-03-03
Vue實(shí)現(xiàn)當(dāng)訪問(wèn)的路由不存在時(shí)跳轉(zhuǎn)到404頁(yè)面的方法詳解
在 Vue3 中,可以使用 Vue Router 實(shí)現(xiàn)跳轉(zhuǎn)到 404 頁(yè)面,即當(dāng)用戶訪問(wèn)一個(gè)不存在路由時(shí),系統(tǒng)會(huì)默認(rèn)跳轉(zhuǎn)到 404 頁(yè)面,本文給大家介紹了一個(gè)簡(jiǎn)單的實(shí)現(xiàn)方法,需要的朋友可以參考下2023-12-12
vue-editor-bridge報(bào)錯(cuò)的解決方案
這篇文章主要介紹了vue-editor-bridge報(bào)錯(cuò)的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-04-04
vue 監(jiān)聽(tīng)input輸入事件(oninput)的示例代碼支持模糊查詢
這篇文章主要介紹了vue 監(jiān)聽(tīng)input輸入事件(oninput)支持模糊查詢,比如說(shuō)表格模糊查詢,實(shí)現(xiàn)一邊輸入,一邊過(guò)濾數(shù)據(jù),本文通過(guò)示例代碼給大家詳細(xì)講解,需要的朋友可以參考下2023-02-02
Vue+Echarts報(bào)錯(cuò)Cannot?set?properties?of?undefined?(settin
這篇文章主要介紹了Vue+Echarts報(bào)錯(cuò)Cannot?set?properties?of?undefined?(setting?‘plate‘)的問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-08-08

