精华内容
下载资源
问答
  • C#使用chart绘制实时折线图,波形图

    万次阅读 多人点赞 2018-08-24 16:12:32
    采用VS自带的Chart图表控件,制作实时动态显示的折线图,和波形图 涉及知识点: Chart 控件,功能强大,可以绘制柱状图,折线图,波形图,饼状图,大大简化了对图的开发与定制。 Chart控件的相关概念: ChartArea...

    如果需要C#系统学习和辅导,请联系:C#一对一学习辅导   谢谢~

     

     

    采用VS自带的Chart图表控件,制作实时动态显示的折线图,和波形图

    涉及知识点:

    • Chart 控件,功能强大,可以绘制柱状图,折线图,波形图,饼状图,大大简化了对图的开发与定制。

    Chart控件的相关概念:

    • ChartArea,表示图表区域,一个Chart可以绘制多个ChartArea,重叠在一起。
    • Series ,表示数据序列,每个ChartArea可以有多个数据线。即,Series属于ChartArea.
    • AxisX,AxisY,表示主坐标轴,每一个ChartArea都有对应的坐标轴,包括主坐标轴,辅坐标轴
    • Queue集合,表示先进先出的集合。

    主要有两个方法:

    • Dequeue() 表示移除并返回位于 System.Collections.Generic.Queue<T> 开始处的对象。
    • Enqueue() 表示将对象添加到 System.Collections.Generic.Queue<T> 的结尾处。
    • Timer ,定时器,定时之行相应的功能,更新数据,刷新图表。

     

    【折线图,是取[0,100]之间的随即数进行填充】:

    【波形图,是取正玄值,并放大50倍,然后上移50】

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    using System.Windows.Forms.DataVisualization.Charting;
    
    namespace WindowsFormsApplication1
    {
        public partial class RealChart : Form
        {
            private Queue<double> dataQueue = new Queue<double>(100);
    
            private int curValue = 0;
    
            private int num = 5;//每次删除增加几个点
    
            public RealChart()
            {
                InitializeComponent();
            }
    
            /// <summary>
            /// 初始化事件
            /// </summary>
            /// <param name="sender"></param>
            /// <param name="e"></param>
            private void btnInit_Click(object sender, EventArgs e)
            {
                InitChart();
            }
    
            /// <summary>
            /// 开始事件
            /// </summary>
            /// <param name="sender"></param>
            /// <param name="e"></param>
            private void btnStart_Click(object sender, EventArgs e)
            {
                this.timer1.Start();
            } 
            
            /// <summary>
            /// 停止事件
            /// </summary>
            /// <param name="sender"></param>
            /// <param name="e"></param>
            private void btnStop_Click(object sender, EventArgs e)
            {
                this.timer1.Stop();
            }
    
            /// <summary>
            /// 定时器事件
            /// </summary>
            /// <param name="sender"></param>
            /// <param name="e"></param>
            private void timer1_Tick(object sender, EventArgs e)
            {
                UpdateQueueValue();
                this.chart1.Series[0].Points.Clear();
                for(int i=0;i<dataQueue.Count;i++){
                    this.chart1.Series[0].Points.AddXY((i+1), dataQueue.ElementAt(i));
                }
            } 
            
            /// <summary>
            /// 初始化图表
            /// </summary>
            private void InitChart() {
                //定义图表区域
                this.chart1.ChartAreas.Clear();
                ChartArea chartArea1 = new ChartArea("C1");
                this.chart1.ChartAreas.Add(chartArea1);
                //定义存储和显示点的容器
                this.chart1.Series.Clear();
                Series series1 = new Series("S1");
                series1.ChartArea = "C1";
                this.chart1.Series.Add(series1);
                //设置图表显示样式
                this.chart1.ChartAreas[0].AxisY.Minimum = 0;
                this.chart1.ChartAreas[0].AxisY.Maximum =100;
                this.chart1.ChartAreas[0].AxisX.Interval = 5;
                this.chart1.ChartAreas[0].AxisX.MajorGrid.LineColor = System.Drawing.Color.Silver;
                this.chart1.ChartAreas[0].AxisY.MajorGrid.LineColor = System.Drawing.Color.Silver;
                //设置标题
                this.chart1.Titles.Clear();
                this.chart1.Titles.Add("S01");
                this.chart1.Titles[0].Text = "XXX显示";
                this.chart1.Titles[0].ForeColor = Color.RoyalBlue;
                this.chart1.Titles[0].Font = new System.Drawing.Font("Microsoft Sans Serif", 12F);
                //设置图表显示样式
                this.chart1.Series[0].Color = Color.Red;
                if (rb1.Checked)
                {
                    this.chart1.Titles[0].Text =string.Format( "XXX {0} 显示",rb1.Text);
                    this.chart1.Series[0].ChartType = SeriesChartType.Line;
                }
                if (rb2.Checked) {
                    this.chart1.Titles[0].Text = string.Format("XXX {0} 显示", rb2.Text);
                    this.chart1.Series[0].ChartType = SeriesChartType.Spline;
                }
                this.chart1.Series[0].Points.Clear();
            }
            
            //更新队列中的值
            private void UpdateQueueValue() {
                
                if (dataQueue.Count > 100) {
                    //先出列
                    for (int i = 0; i < num; i++)
                    {
                        dataQueue.Dequeue();
                    }
                }
                if (rb1.Checked)
                {
                    Random r = new Random();
                    for (int i = 0; i < num; i++)
                    {
                        dataQueue.Enqueue(r.Next(0, 100));
                    }
                }
                if (rb2.Checked) {
                    for (int i = 0; i < num; i++)
                    {
                        //对curValue只取[0,360]之间的值
                        curValue = curValue % 360;
                        //对得到的正玄值,放大50倍,并上移50
                        dataQueue.Enqueue((50*Math.Sin(curValue*Math.PI / 180))+50);
                        curValue=curValue+10;
                    }
                }
            }
        }
    }

     

    关于定时器Timer:

    说明:表示在相同的时间间隔,引发用户自定义的事情 。实现用户需要的功能。本例中是用来定时更新队列中的数据,并刷新图表。

    常用说明:

    1. Interval 时间间隔,以毫秒为单位,本例是300毫秒。
    2. Tick 定时触发的事件,本例对应timer1_Tick事件方法。
    3. Start(),Stop() 表示定时器的启动和停止。Enabled 表示定时器是否启用,默认值为 false,需要手动设置为true。

    如果需要C#系统学习和辅导,请联系:C#一对一学习辅导   谢谢~

    展开全文
  • 使用matplotlib绘制折线图,柱状图,柱线混合图

    万次阅读 多人点赞 2019-08-31 21:54:49
    matplotlib介绍 Matplotlib 是 Python 的绘图库。 它可与 NumPy 一起使用,提供了一种有效的 MatLab 开源替代方案。 它也可以和图形工具包一起使用,如 ...matplotlib绘制折线图 绘制一条折线的折线图 # -*- c...

    matplotlib介绍

    • Matplotlib 是 Python 的绘图库。 它可与 NumPy 一起使用,提供了一种有效的 MatLab 开源替代方案。 它也可以和图形工具包一起使用,如 PyQtwxPython
    • 安装Matplotlib库命令:在cmd命令窗口输入pip install matplotlib

    matplotlib绘制折线图

    1. 绘制一条折线的折线图
    # -*- coding:utf-8 -*-
    import matplotlib
    import matplotlib.pyplot as plt
    # 处理乱码
    matplotlib.rcParams['font.sans-serif'] = ['SimHei']  # 用黑体显示中文
    x = [1, 2, 3, 4]
    y = [10, 50, 20, 100]
    # "r" 表示红色,ms用来设置*的大小
    plt.plot(x, y, "r", marker='*', ms=10, label="a")
    # plt.plot([1, 2, 3, 4], [20, 30, 80, 40], label="b")
    plt.xticks(rotation=45)
    plt.xlabel("发布日期")
    plt.ylabel("小说数量")
    plt.title("80小说网活跃度")
    # upper left 将图例a显示到左上角
    plt.legend(loc="upper left")
    # 在折线图上显示具体数值, ha参数控制水平对齐方式, va控制垂直对齐方式
    for x1, y1 in zip(x, y):
        plt.text(x1, y1 + 1, str(y1), ha='center', va='bottom', fontsize=20, rotation=0)
    plt.savefig("a.jpg")
    plt.show()
    

    图形效果展示:
    在这里插入图片描述

    • 注意:savefig()是图形存储成图片show()是将图形显示出来。
    1. 绘制多条折线
    # -*- coding:utf-8 -*-
    import matplotlib
    import matplotlib.pyplot as plt
    matplotlib.rcParams['font.sans-serif'] = ['SimHei']  # 用黑体显示中文
    x = [1, 2, 3, 4]
    y1 = [45, 50, 20, 100]
    y2 = [26, 10, 76, 25]
    y3 = [11, 66, 55, 88]
    y4 = [69, 50, 35, 100]
    plt.plot(x, y1, marker='*', ms=10, label="a")
    plt.plot(x, y2, marker='*', ms=10, label="b")
    plt.plot(x, y3, marker='*', ms=10, label="c")
    plt.plot(x, y4, marker='*', ms=10, label="d")
    plt.xticks(rotation=45)
    plt.xlabel("发布日期")
    plt.ylabel("小说数量")
    plt.title("80小说网活跃度")
    plt.legend(loc="upper left")
    # 在折线图上显示具体数值, ha参数控制水平对齐方式, va控制垂直对齐方式
    for y in [y1, y2, y3, y4]:
        for x1, yy in zip(x, y):
            plt.text(x1, yy + 1, str(yy), ha='center', va='bottom', fontsize=20, rotation=0)
    plt.savefig("a.jpg")
    plt.show()
    

    图形效果展示:
    在这里插入图片描述

    matplotlib绘制柱状图

    1. 绘制普通柱状图
    # -*- coding:utf-8 -*-
    import matplotlib
    import matplotlib.pyplot as plt
    matplotlib.rcParams['font.sans-serif'] = ['SimHei']  # 用黑体显示中文
    # 构建数据
    x = [1, 2, 3, 4]
    y = [450, 500, 200, 1000]
    # 绘图
    plt.bar(x=x, height=y, label='书库大全', color='steelblue', alpha=0.8)
    # 在柱状图上显示具体数值, ha参数控制水平对齐方式, va控制垂直对齐方式
    for x1, yy in zip(x, y):
        plt.text(x1, yy + 1, str(yy), ha='center', va='bottom', fontsize=20, rotation=0)
    # 设置标题
    plt.title("80小说网活跃度")
    # 为两条坐标轴设置名称
    plt.xlabel("发布日期")
    plt.ylabel("小说数量")
    # 显示图例
    plt.legend()
    plt.savefig("a.jpg")
    plt.show()
    

    图形效果展示:
    在这里插入图片描述

    1. 绘制多组柱状图
    # -*- coding:utf-8 -*-
    import matplotlib
    import matplotlib.pyplot as plt
    matplotlib.rcParams['font.sans-serif'] = ['SimHei']  # 用黑体显示中文
    # 构建数据
    x = ['2015', '2016', '2017', '2018', '2019']
    y1 = [4500, 5000, 2000, 7000, 10000]
    y2 = [5200, 7000, 5000, 9000, 11000]
    # 绘图
    plt.bar(x=x, height=y1, label='python', color='steelblue', alpha=0.8)
    plt.bar(x=x, height=y2, label='java', color='indianred', alpha=0.8)
    # 在柱状图上显示具体数值, ha参数控制水平对齐方式, va控制垂直对齐方式
    for x1, yy in zip(x, y1):
        plt.text(x1, yy + 1, str(yy), ha='center', va='bottom', fontsize=20, rotation=0)
    for x1, yy in zip(x, y2):
        plt.text(x1, yy + 1, str(yy), ha='center', va='bottom', fontsize=20, rotation=0)
    # 设置标题
    plt.title("python与java图书对比")
    # 为两条坐标轴设置名称
    plt.xlabel("年份")
    plt.ylabel("销量")
    # 显示图例
    plt.legend()
    plt.savefig("a.jpg")
    plt.show()
    

    图形效果展示:
    在这里插入图片描述

    1. 绘制柱状图的条柱并列显示
    # -*- coding:utf-8 -*-
    import numpy as np
    import matplotlib
    import matplotlib.pyplot as plt
    
    matplotlib.rcParams['font.sans-serif'] = ['SimHei']  # 用黑体显示中文
    # 构建数据
    x = ['2015', '2016', '2017', '2018', '2019']
    y1 = [4500, 5000, 2000, 7000, 10000]
    y2 = [5200, 7000, 5000, 9000, 11000]
    bar_width = 0.3
    # 将X轴数据改为使用range(len(x_data), 就是0、1、2...
    plt.bar(x=range(len(x)), height=y1, label='python', color='steelblue', alpha=0.8, width=bar_width)
    # 将X轴数据改为使用np.arange(len(x_data))+bar_width,
    # 就是bar_width、1+bar_width、2+bar_width...这样就和第一个柱状图并列了
    plt.bar(x=np.arange(len(x)) + bar_width, height=y2, label='java', color='indianred', alpha=0.8, width=bar_width)
    # 在柱状图上显示具体数值, ha参数控制水平对齐方式, va控制垂直对齐方式
    for x1, yy in enumerate(y1):
        plt.text(x1, yy + 1, str(yy), ha='center', va='bottom', fontsize=20, rotation=0)
    for x1, yy in enumerate(y2):
        plt.text(x1 + bar_width, yy + 1, str(yy), ha='center', va='bottom', fontsize=20, rotation=0)
    # 设置标题
    plt.title("python与java对比")
    # 为两条坐标轴设置名称
    plt.xlabel("年份")
    plt.ylabel("销量")
    # 显示图例
    plt.legend()
    plt.savefig("a.jpg")
    plt.show()
    

    图形效果展示:
    在这里插入图片描述

    matplotlib绘制柱线混合图

    1. 绘制柱线混合图
    # -*- coding:utf-8 -*-
    import matplotlib
    import matplotlib.pyplot as plt
    matplotlib.rcParams['font.sans-serif'] = ['SimHei']  # 用黑体显示中文
    # 构建数据
    x = [2, 4, 6, 8]
    y = [450, 500, 200, 1000]
    # 绘图
    plt.bar(x=x, height=y, label='书库大全', color='steelblue', alpha=0.8)
    # 在柱状图上显示具体数值, ha参数控制水平对齐方式, va控制垂直对齐方式
    for x1, yy in zip(x, y):
        plt.text(x1, yy + 1, str(yy), ha='center', va='bottom', fontsize=20, rotation=0)
    # 设置标题
    plt.title("80小说网活跃度")
    # 为两条坐标轴设置名称
    plt.xlabel("发布日期")
    plt.ylabel("小说数量")
    # 显示图例
    plt.legend()
    # 画折线图
    plt.plot(x, y, "r", marker='*', ms=10, label="a")
    plt.xticks(rotation=45)
    plt.legend(loc="upper left")
    plt.savefig("a.jpg")
    plt.show()
    

    图形效果展示:
    在这里插入图片描述

    展开全文
  • excel折线图和堆积折线图

    千次阅读 2018-12-10 09:31:51
    excel中关于折线图和堆积折现图的解释: “堆积折线图和带数据标记的堆积折线图 堆积折线图用于显示每一数值所占大小随时间或有序类别而变化的趋势,可能显示数据点以表示单个数据值,也可能不显示这些数据点。如果...

    excel中关于折线图和堆积折现图的解释:

    “堆积折线图和带数据标记的堆积折线图 堆积折线图用于显示每一数值所占大小随时间或有序类别而变化的趋势,可能显示数据点以表示单个数据值,也可能不显示这些数据点。如果有很多类别或者数值是近似的,则应该使用无数据点堆积折线图。 提示 为更好地显示此类型的数据,您可能要考虑改用堆积面积图。

    更通俗的解释为: 

    如果有两个数据系列,折线图中两个数据系列是独立的,而堆积折线图中,第一个数据系列和折线图中显示的是一样的,而第二个数据系列的值要和第一个数据系列的值在同一分类(或时间上)进行累计,这样可以显示两个数据系列在同一分类(或时间上)的值的总和的发展变化趋势。

    比如企业生产两种产品,制作销售额的折线图,只能单纯反映每种产品的销售额随时间的变化情况,而制作销售额的堆积折线图则可以反映这两种产品的总销售额随时间发展变化的情况。

     

    展开全文
  • 相信大家对Excel做折线图应该不陌生,在展示数据的时候,图表是一种最好的展示方法。但是经常会碰到一种尴尬的事情就是,当数据维多比较多的时候,做出的图表就会显得非常难看。今天我们就来学习一下,多组数据怎么...

    相信大家对Excel做折线图应该不陌生,在展示数据的时候,图表是一种最好的展示方法。但是经常会碰到一种尴尬的事情就是,当数据维多比较多的时候,做出的图表就会显得非常难看。今天我们就来学习一下,多组数据怎么做折线图才好看。

    平民手中的折线图

    08c293b9a2ac8cb8cf6c0d4bc385fa39.png

    当数据维度较多的时候,上面简单的折线图就会显的很尴尬。下面我们来看看高手眼中的折线图效果是怎么样的。

    真正的折线图

    d5017f460eb3308c425457f044e55acd.png

    对比完第二张高手手中的折线图,是不是瞬间感觉自己不会做图表了,下面我们就来学习一下如何做出这种区块式的折线图。

    第一步:将数据分散处理。将每人对应的数据分段进行填充,务必保持每组数据保存一行空格。这样制作折线图的时候,数据才不会连接起来。如下图:

    a3fd509f20cca21acc38174e13c0a89f.png

    第二步:选择数据区域,点击插入—折线图,调整一下图表格式。选择底部坐标轴,点击右键添加次要网格线,点击右键坐标轴设置,将标线间距调整为6。这样每个区间的数据就分开了。如下图:

    d82cabde5bdf848766768a39904efeca.gif

    第三步:添加标题,点击插入,在对应的区间内插入文本框,并输入依次输入对应的名字即可。

    2d075d0a6a20a1330874f0c023647634.gif

    第四步:插入辅助列,添加达标值平均线,添加数据标签。调整图表格式即可。如下图

    bb213badbf9f97e5b2b91427a5d4d45a.gif
    ad24ac3be380835be481fcdec2b91b97.png

    现在你学会如何制作这样亮眼的折线图表了吗?

    更多技巧:

    展开全文
  • python中绘制2D曲线图需要使用到Matplotlib,Matplotlib 是一个 Python 的 2D绘图库,它以各种硬拷贝格式和跨平台的交互式环境生成出版质量...1. 绘制折线图 plt.plot() 可以用于绘制折线图。只传入一维的散点(n个)p1
  • MPAndroidChart实现折线图,单折线图,多折线图,饼图,蜘蛛网图,柱状图,单柱状图,多柱状图,组合图
  • 记录折线图的一些基本设置: 1.折线图背景颜色 2.标题字颜色、大小,小标题字颜色、大小 3.xy轴颜色、xy轴字旋转、去掉x轴网格、去掉xy轴网格线、xy轴坐标线的宽度、颜色 4.legend颜色 5.折线图距离上下左右的...
  • 折线图是科研文献中最常见的统计图之一,选择作折线图的数据都具有如下特征:同一事物在时间上具有连续性。例如,上图中的折线图,可以看出是两组动物(Ctrl 和 CUMS 造模组)随着时间变化(0~8 week)相对应行为学指标...
  • 用Echarts练习实现折线图+柱状图+折线图填充,以便后续使用时可直接复制 option = { title: { text: '动态数据', subtext: '纯属虚构' }, tooltip: { trigger: 'axis', axisPointer: { type: 'cr...
  • python画折线图利用的是matplotlib.pyplot.plot的工具来绘制折线图,这里先给出一个段代码和结果图:# -*- coding: UTF-8 -*-import numpy as npimport matplotlib as mplimport matplotlib.pyplot as plt#这里导入...
  • 1. 实验介绍本实验主要介绍折线图理论与基于Python的折线图实现。1.1. 实验目的掌握折线图基本使用场景,使用Python的Pyecharts模块实现折线图。1.2. 知识点折线图理论折线图实现2. 折线图理论线图介绍:线图也叫...
  • WPF 柱状图报表饼图报表区域折线图报表横向柱状图报表折线图报表
  • python画折线图利用的是matplotlib.pyplot.plot的工具来绘制折线图,这里先给出一个段代码和结果图:# -*- coding: UTF-8 -*-import numpy as npimport matplotlib as mplimport matplotlib.pyplot as plt#这里导入...
  • 原文:自适应布局的折线图,柱状图以及天气预报折线图 版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/gao110753245/article/details/78195942 ...
  • Python绘制折线图、散点图

    万次阅读 2019-01-06 11:01:13
    Python绘图需要下载安装matplotlib模块,它是一个数学绘图库,我们将使用它来制作简单的图表,如折线图和散点图。关于matplotlib模块的下载安装预配置将在后面具体介绍。 (一)绘制折线图 首先,我们先绘制一个...
  • ![图片说明](https://img-ask.csdn.net/upload/201907/09/1562656658_206194.png) 虽然他俩用的一个x轴,但是折线图并没有用全x轴,那么怎么画出折线图
  • 在echarts折线图中,默认折线从刻度中心开始,我们为了图标的美观有时需要折线从头开始显示,一个配置项就可以轻松搞定。 boundaryGap:false
  • Vue折线图

    千次阅读 2019-05-22 15:29:09
    在jQuery里面,实现一个折线图,【前端统计图】echarts实现单条折线图 https://www.jianshu.com/p/0354a4f8c563。 现在要实现,Vue+Echarts实现一个折线图,打开之前的mint项目: 1:在项目里面安装echarts cnpm install...
  • practice.png双y轴折线图(plot both of those plots in one plot with 2 y-axislabels)一个y轴用来展示每年选秀总人数,另一个y轴用来展示赢球贡献值的...本文内容为重复 learning python:part 2 -...
  • 股票折线图

    千次阅读 2018-01-08 10:58:28
    折线图大全
  • Echarts折线图属性设置大全

    万次阅读 多人点赞 2018-09-14 23:05:36
    Echarts折线图属性设置大全 var option = { backgroundColor: '#FFF0F5', title: { text: '折线图', subtext: '模拟数据', x: 'center' }, legend: { ...
  • Matlab绘制折线图详细方法

    万次阅读 多人点赞 2018-04-11 12:17:55
    Matlab绘制折线图属于非常基本的功能,首先给出一个示例代码,有详细的解释,可以根据自己需求进行修改。 x=1:1:5;%x轴上的数据,第一个值代表数据开始,第二个值代表间隔,第三个值代表终止 a=[203.024,113.857...
  • G2折线图

    千次阅读 2019-04-04 15:03:18
    angular7使用G2折线图安装依赖单折线多折线图结语 安装依赖 antv G2(官方资料)提供了多种安装方式, 这里使用npm添加依赖 npm install @antv/g2 --save 当前版本3.5.2 单折线 在 ~/app/t 文件夹中创建组件 ...
  • VBA生成折线图

    2011-11-21 22:02:04
    VBA生成折线图VBA生成折线图VBA生成折线图
  • 因为项目需要搞一个折线图,按照日期显示相应的成绩,所以有了本文。 以前用过一次XCL-chart,但是感觉只适合固定图表,不去滑动的那种,因为你一滑动太卡了你懂得(毕竟作者好久没更新优化了),拙言大神我开玩笑...
  • pyecharts折线图

    2020-06-14 22:51:38
    折线图 1. 折线图 from pyecharts.charts import Line from pyecharts import options # 1. 准备数据 cate = ["湖北", "四川", "重庆", "河北", "云南"] Confirmed_diagnosis_data = [450, 300, 232, 224, 144] ...
  • 折线图(一)绘制折线图坐标轴

    千次阅读 2015-11-16 22:27:31
    绘制折线图的第一步就是要先绘制出, 折线图的坐标轴,由于手机坐标轴原点在左上方.那么折线图的原点y轴久正好相反。 原点坐标是(0, height) 分别为4个步骤,绘制x轴, y轴, x轴箭头, y轴箭头 为了看清楚这折线...
  • echarts折线图根据时间的搜索,可以实现折线图的渲染效果 注意:echarts图中, stack: ‘总量’,每个数据里面都有这个,折线图的数据在y轴会累加,我注释了 <template> <div class="footer"> <h3&...
  • 【python】画折线图

    万次阅读 多人点赞 2019-08-12 16:52:07
    一个简单的折线图: 画折线图至少需要2个列表:横坐标列表和纵坐标列表,两个坐标的位置一一对应。 from pylab import * mpl.rcParams['font.sans-serif'] = ['SimHei'] x_axis_data = [1, 2, 3, 4, 5] y_axis_data...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 24,086
精华内容 9,634
关键字:

折线图