根据数据写动态生成折线图

根据数据格式

dataGoz: [{
        "xAxis": ["2017-3-1", "2017-3-15", "2017-4-1", "2017-4-12", "2017-5-21", "2017-6-5", "2017-8-12", "2017-9-1", "2017-10-11"],
        "yAxis": [
          { "name": "TT", "data": ["23", "56", "32", "41", "32", "45", "39", "47", "58"] },
          { "name": "KK", "data": ["23333", "34533", "32234", "25551", "34265", "35032", "23332", "27932", "22438"] }
        ],
        "name": "温度"
      }]

动态实现效果 

 

<template>
  <div>
    <div v-for="(dataset, index) in dataGoz" :key="index" :ref="'chart' + index"
      style="width: 600px; height: 200px; margin-bottom: 20px;" v-loading="loading"></div>
  </div>
</template>

<script>
import * as echarts from 'echarts';

export default {
  name: 'LineCharts',
  props: {
    dataGoz: {
      type: Array,
      default: () => []
    }
  },
  mounted() {
    this.$nextTick(() => {
      this.initCharts()
    })
  },
  watch: {
    dataGoz: {
      handler() {

        this.initCharts();

      },
      deep: true
    }
  },
  data() {
    return {
      // 遮罩层
      loading: true,
      
    }
  },
  methods: {
    initCharts() {
      this.loading = true
      // 遍历 dataGoz 数组,为每个数据集初始化一个图表实例  
      this.dataGoz.forEach((dataset, index) => {
        // 初始化图表实例  
        const chartDom = this.$refs['chart' + index][0];
        const chartInstance = echarts.init(chartDom);

        // 转换 yAxis 数据为数字类型  
        dataset.yAxis.forEach(yAxisItem => {
          yAxisItem.yData = yAxisItem.yData.map(value => Number(value));
        }); 
        // ECharts 配置项  
        const option = {
          title: {
            text: dataset.name
          },
          tooltip: {
            trigger: 'axis'
          },
          grid: {
            left: 10,
            right: 10,
            bottom: 20,
            top: 30,
            containLabel: true
          },
          xAxis: {
            type: 'category',
            data: dataset.xAxis
          },
          yAxis: {
            type: 'value'
          },
          series: dataset.yAxis.map(yAxisItem => ({
            name: yAxisItem.yName,
            type: 'line',
            data: yAxisItem.yData
          }))
        };
        this.loading = false;

        // 使用配置项和数据显示图表  
        chartInstance.setOption(option);
      });

  

    }
  }
};  
</script>

<style scoped>
/* 你的样式 */
</style>

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Plotly是一个强大的数据可视化工具库,可以用来动态生成折线图。使用Plotly创建动态折线图的步骤如下: 1. 导入所需的库和模块。首先,您需要导入Plotly库和相关的模块。可以使用以下代码导入: ```python import plotly.graph_objs as go from plotly.offline import plot ``` 2. 创建数据。创建包含折线图数据的列表。例如,您可以创建一个包含x轴和y轴数据的列表: ```python x = [1, 2, 3, 4, 5] y = [10, 15, 7, 12, 9] ``` 3. 创建折线图布局。使用`go.Layout()`函数创建折线图的布局,并设置标题、轴标签等参数。例如: ```python layout = go.Layout( title='动态生成折线图', xaxis=dict(title='X轴'), yaxis=dict(title='Y轴') ) ``` 4. 创建折线图轨迹。使用`go.Scatter()`函数创建折线图的轨迹,并设置x轴和y轴数据。例如: ```python trace = go.Scatter( x=x, y=y, mode='lines', name='折线图' ) ``` 5. 组合数据和布局。将轨迹和布局组合在一起,创建一个数据列表。例如: ```python data = [trace] ``` 6. 绘制折线图。使用`plot()`函数将数据和布局传递给Plotly库,并生成折线图。例如: ```python fig = go.Figure(data=data, layout=layout) plot(fig, filename='动态折线图.html') ``` 这样,您就可以使用Plotly动态生成折线图了。您可以将生成的图表保存为HTML文件,并在浏览器中查看。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [python折线图样式_用Python的Plotly画出炫酷的数据可视化(含各类图介绍)](https://blog.csdn.net/weixin_39607240/article/details/110109686)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值