精华内容
下载资源
问答
  • 前言最近做项目的时候,产品说要在后台的首页放多折线图(不是多数据折线图),但我上去网上找,基本是多数据折线图。例如:同时换关键字也没什么可参考的。多折线图实现找不到参考的,只能自己摸索。于是尝试将呈现...

    f105f8c674a4c04abf9b70534da937b6.png

    前言

    最近做项目的时候,产品说要在后台的首页放多折线图(不是多数据折线图),但我上去网上找,基本是多数据折线图。例如:

    9981913cb3282a3be5f42d646eab115a.png

    同时换关键字也没什么可参考的。

    93992ab46768e7ac86075c43449ea57b.png

    多折线图实现

    找不到参考的,只能自己摸索。于是尝试将呈现折线图的HTML内容复制一遍。结果是——只显示一个折线图,控制台没有报错。

    开始有些思路,产生问题的原因可能是:

    一、数据没有传过来;

    二、数据绑定的问题;

    三、一二问题同时有。

    最后发现一开始的HTML结构出现问题,导致后续的数据绑定出现问题。

    highcharts插件是通过绑定id,并将数据渲染到对应id的容器中。highcharts的官方文档实例不太明显,走了一小段弯路。

    f083f0aad79c08dedb962ee793437179.png

    JS代码

    var vm = new Vue({

    el: "#app",

    data: {

    //表格当前页数据

    list: [],

    status: "3",

    },

    created: function () {

    //this.date=vm.date["new Date"];

    this.loadData(this.status);

    },

    methods: {

    //从服务器读取数据

    loadData(status) {

    let vm = this;

    vm.listLoading = true;

    $.getJSON("Ajax请求地址", {status: status}, function (res) {

    vm.time = [];

    vm.number = [];

    vm.time = res.time;//X轴时间

    vm.user=res.user;//Y轴用户数量

    vm.downloads=res.downloads;//Y轴下载数量

    vm.views=res.views;//Y轴浏览量

    vm.date = res.date;//标题上的时间

    vm.listLoading = false;

    var chart = Highcharts.chart("user", {

    title: {

    text: vm.date+" 用户数量"

    },

    subtitle: {

    text: "数据来源:"

    },

    yAxis: {

    title: {

    text: "用户数量"

    }

    },

    legend: {

    layout: "vertical",

    align: "right",

    verticalAlign: "middle"

    },

    xAxis: {

    categories: vm.time

    },

    series: [

    {

    name: "用户数量",

    data: vm.user

    },

    ],

    responsive: {

    rules: [{

    condition: {

    maxWidth: 500

    },

    chartOptions: {

    legend: {

    layout: "horizontal",

    align: "center",

    verticalAlign: "bottom"

    }

    }

    }]

    }

    });

    // Highcharts.chart("id",data);

    var chart = Highcharts.chart("download", {

    title: {

    text: vm.date+" 下载次数"

    },

    subtitle: {

    text: "数据来源:"

    },

    yAxis: {

    title: {

    text: "下载次数"

    }

    },

    legend: {

    layout: "vertical",

    align: "right",

    verticalAlign: "middle"

    },

    xAxis: {

    categories: vm.time

    },

    series: [

    {

    name: "下载次数",

    data: vm.downloads

    },

    ],

    responsive: {

    rules: [{

    condition: {

    maxWidth: 500

    },

    chartOptions: {

    legend: {

    layout: "horizontal",

    align: "center",

    verticalAlign: "bottom"

    }

    }

    }]

    }

    });

    });

    },

    //筛选时间类型

    sel(){

    this.loadData(this.status);

    },

    },

    })

    HTML

    效果

    6e72919e5e685ff2b152e53d32937189.png

    若想实现多数据折线图,则在series中添加数据项即可。

    series: [

    {

    name: "用户数量",

    data: vm.user

    },

    {

    name: "下载数量",

    data: vm.downloads

    },

    {

    name: "浏览量",

    data: vm.views

    },

    ],

    相关链接

    HighCharts在线演示

    HighCharts半中文API文档

    注:百度搜到的那些相关的帖子没有比较准确说到关键点上(相关文章也不多),以及官方文档的描述有点乱。个人写的这篇更倾向于演示,比较适合JS基础薄弱的开发人员。如有错误,还望各位前辈在评论区指出。

    展开全文
  • 也就是折线图1秒或者几秒获取一次数据(通过Signal请求端口数据),当然请求数据库也是可以实现的,但是对于数据库性能也是特别消耗的,现在先看看动态的折线图是如何实现的吧 //////////////////////////////======...

    可以复制搜索看看是否是想要的效果

    https://gallery.echartsjs.com/editor.html?c=xtdeZMuQ4t
    

    //SignalR

    https://blog.csdn.net/weixin_42768220/article/details/107575940
    

    也就是折线图1秒或者几秒获取一次数据(通过SignalR请求端口数据),当然请求数据库也是可以实现的,但是对于数据库性能也是特别消耗的,现在先看看动态的折线图是如何实现的吧
    //==============================================================
    子组件

    <template>
      <div :class="className" :style="{height:height,width:width}" />//单独的组件渲染对于Echarts
    </template>
    
    
    data() {
        return {
        	chart: null,
        	Obj: {//定义的变量用来存储获取过来的数据
    		        XData: [],
    		        YData: []
    		      }
        }
    }
    methods: {
    	SetData(data) {
          // debugger;
          // console.log(data,'data')
          let me = this;
          me.$el.removeAttribute("_echarts_instance_");
          me.chart = echarts.init(me.$el, "macarons");
          if (!isEmpty(data)) {
            me.initChart(data);
          } else {
            let EmptyChartImg =
              '<img class="EmptyChartImg" src="' + me.isEmptyChartImg + '">';
              me.$el.innerHTML = EmptyChartImg;
          }
        },
        SetSeriesData(dataValue){
            let me = this; //在父组件中通过$ref讲获取的数据过来接收dataValue
            if (!this.chart) {//判断最开始如果没有渲染过折线,那么就需要对折线图初始化
              me.SetData(dataValue);
            }else{//否则再次获取过来的数据不需要重新渲染,直接push获取过来的值
              if(this.Obj.YData.length>20){
              this.Obj.XData.shift()
              this.Obj.YData.shift();
                  
              }
              this.Obj.YData.push(dataValue.Value);
    
              this.Obj.XData.push(getTime(Math.round(new Date().getTime()/ 1000)));//获取当前的时间
              me.chart.setOption({//重新给data赋值
                  series: [{
                      data: this.Obj.YData
                  }],
                  xAxis: [{
                      data: this.Obj.XData
                  }],
              });
            }
        },
        initChart(dynamicData) {
          // debugger;//初始化
            let me = this;      
                this.Obj.XData.push(getTime(Math.round(new Date().getTime() / 1000)));
            if (!isEmpty(dynamicData.Value)) {
                this.Obj.YData.push(dynamicData.Value);
            }
          me.setOptions();//调用setOptions
        },  
        setOptions() {
            let me = this;      
            // 生成初始数据
          me.chart.setOption({//设置想要实现的样式
            title: {
              left: "center",
              text: "",
              textStyle: {
                fontWeight: 500,
                fontSize: "20"
              }
            },
            tooltip: {
              trigger: "axis"
            },
            grid: {
              left: "3%",
              right: "4%",
              bottom: "3%",
              containLabel: true
            },
            xAxis: {
              type: "category",
              boundaryGap: false,
              axisLine: {
                lineStyle: {
                  color: "#57617B"
                }
              },
              data: this.Obj.XData
            },
            yAxis: {
              name: "ss",
              type: "value",
              splitArea: {
                show: false
              },
              axisTick: {
                show: false //隐藏X轴刻度
              }
            },
            series: [
              {
                name: "发送",
                type: "line",
                showSymbol: false,
                lineStyle: {
                  normal: {
                    width: 1
                  }
                },
                data: this.Obj.YData
              }
            ]
          });
        },
    }
    
    function getTime() {
            var ts = arguments[0] || 0;
            var t, h, i, s,y,m,d;
            t = ts ? new Date(ts * 1000) : new Date();
            y = t.getFullYear();
            m = t.getMonth()+1;
            d = t.getDay();
    
            h = t.getHours();
            i = t.getMinutes();
            s = t.getSeconds();
            // 可根据需要在这里定义时间格式
            return y +'年'+m+'月'+d +'日'+ ' '+(h < 10 ? '0' + h : h) + ':' + (i < 10 ? '0' + i : i) + ':' + (s < 10 ? '0' + s : s);
        }
    

    //============================================================
    父组件

    <DynamicChart ref="DynamicChart"></DynamicChart>//在此组件中展示
    <Signalr @SignalrData="SignalrData"></Signalr>//Signalr获取端口数据
    SignalR获取的方法会在  https://blog.csdn.net/weixin_42768220/article/details/107575940  里阐述
    <script>
    import DynamicChart from '@/views/components/InsertManage/OPCUA/OPCUAHistory/DynamicChart'
    import Signalr from '@/views/components/InsertManage/OPCUA/Signalr'
    components:{
    	DynamicChart,
    	Signalr
    }
    methods:{
    	SignalrData(data){
                this.$refs.DynamicChart.SetSeriesData(data);//将值传过去
            },
    }
    </script>
    

    以上所实现的方法是通过SignalR获取数据传值,动态展示的方法,如果想要一直获取数据库的数据,来动态展示,也是可以实现的,就是需要通过setTimeout来实现,(setInterval实现的话可以的,缺点也很明显,破坏性比较强),用setTimeout循环调用(递归)就可以实现了,但是最好还是通过获取端口数据,后端也可以定时传值,也不用做循环。

    展开全文
  • 在本教程中,您将学习怎样用Python来创建专业的线形。在接下来的练习中,您将使用您的新技能来处理真实世界的数据集。准备好笔记本我们首先设置编码环境。import pandas as pdimport matplotlib.pyplot as plt%...

    现在您已经熟悉了编码环境,接下来学习如何制作自己的图表!

    在本教程中,您将学习怎样用Python来创建专业的线形图。在接下来的练习中,您将使用您的新技能来处理真实世界的数据集。

    准备好笔记本

    我们首先设置编码环境。import pandas as pd

    import matplotlib.pyplot as plt

    %matplotlib inline

    import seaborn as sns

    print("Setup Complete")

    选择一个数据集

    本教程的数据集是采用音乐流服务Spotify上的全球每日流行歌曲。 我们专注于2017年和2018年的五首流行歌曲:"Shape of You", by Ed Sheeran

    "Despacito", by Luis Fonzi

    "Something Just Like This", by The Chainsmokers and Coldplay

    4."HUMBLE.", by Kendrick Lamar"Unforgettable", by French Montana

    请注意,第一个出现的日期是2017年1月6日,与Ed Sheeran的《Shape of You》的发行日期相对应。而且,通过这个表格,你可以看到《Shape of You》在发行当天在全球被播放了12,287,078次。请注意,其他歌曲在第一行中缺少值,因为它们发布比较晚!

    加载数据

    正如您在上一篇教程中了解到的,我们使用pd.read_csv命令加载数据集。# Path of the file to read

    spotify_filepath = "../input/spotify.csv"

    # Read the file into a variable spotify_data

    spotify_data = pd.read_csv(spotify_filepath, index_col="Date", parse_dates=True)

    运行上述两行代码的最终结果是,我们现在可以通过使用spotify_data访问数据集。

    检查数据

    我们可以使用您在上一个教程中学习的head命令打印数据集的前五行。# Print the first 5 rows of the data

    spotify_data.head()

    输出:

    2191526760.png

    现在检查前五行是否与上面数据集的图像一致(从我们看到它在Excel中的样子时开始)。空条目将显示为NaN,这是“Not a Number”的缩写。

    我们还可以通过做一个小的修改(其中.head()变成.tail())来查看数据的最后五行:# Print the last five rows of the data

    spotify_data.tail()

    1263142313.png

    谢天谢地,一切看起来都很正常,每首歌每天都有数百万的全球流量,我们可以继续绘制数据了!

    图表数据

    现在数据集已经加载到笔记本中,我们只需要一行代码就可以制作一个折线图!# Line chart showing daily global streams of each song

    sns.lineplot(data=spotify_data)

    输出:

    1470884585.png

    如您所见,代码行相对较短,有两个主要组件:sns.lineplot告诉笔记本我们要创建一个折线图。您在本课程中学习的每个命令都将以sns开头,这表示该命令来自seaborn包。 例如,我们使用sns.lineplot来制作折线图。 很快,您将了解到我们分别使用sns.barplot和sns.heatmap来制作条形图和热图。

    data = spotify_data选择将用于创建图表的数据。

    请注意,在创建折线图时,您将始终使用相同的格式,并且使用新数据集更改的唯一内容是数据集的名称。 因此,如果您正在使用名为financial_data的其他数据集,则代码行将如下所示:sns.lineplot(data=financial_data)

    有时我们还需要修改一些额外的细节,比如图的大小和图表的标题。这些选项都可以用一行代码轻松设置。# Set the width and height of the figure

    plt.figure(figsize=(14,6))

    # Add title

    plt.title("Daily Global Streams of Popular Songs in 2017-2018")

    # Line chart showing daily global streams of each song

    sns.lineplot(data=spotify_data)

    输出:

    2291798685.png

    第一行代码将图形的大小设置为14英寸(宽)乘6英寸(高)。要设置任何图形的大小,只需要复制它显示的代码行。然后,如果希望使用自定义大小,请将提供的值14和6更改为所需的宽度和高度。

    第二行代码设置图的标题。注意标题必须总是用引号括起来(“…”)!

    绘制数据的子集

    到目前为止,您已经了解了如何为数据集中的每一列绘制直线。在本节中,您将了解如何绘制列的子集。

    我们将从打印所有列的名称开始。这是通过一行代码完成的,可以通过交换数据集的名称(在本例中是spotify_data)来适应任何数据集。list(spotify_data.columns)

    输出:['Shape of You',

    'Despacito',

    'Something Just Like This',

    'HUMBLE.',

    'Unforgettable']

    在下一个代码单元格中,我们绘制对应于数据集中前两列的线条。# Set the width and height of the figure

    plt.figure(figsize=(14,6))

    # Add title

    plt.title("Daily Global Streams of Popular Songs in 2017-2018")

    # Line chart showing daily global streams of 'Shape of You'

    sns.lineplot(data=spotify_data['Shape of You'], label="Shape of You")

    # Line chart showing daily global streams of 'Despacito'

    sns.lineplot(data=spotify_data['Despacito'], label="Despacito")

    # Add label for horizontal axis

    plt.xlabel("Date")

    输出:Text(0.5, 0, 'Date')

    3566764912.png

    前两行代码设置了图形的标题和大小.

    接下来的两行分别向折线图中添加一行。例如,考虑第一个,它为“Shape of You”添加了一行:# Line chart showing daily global streams of 'Shape of You'

    sns.lineplot(data=spotify_data['Shape of You'], label="Shape of You")

    此行看起来与我们在数据集中绘制每一行时使用的代码非常相似,但它有一些关键差异:我们设置data = spotify_data ['Shape of You']而不是设置data = spotify_data。 通常,为了仅绘制单个列,我们使用此格式,将列的名称放在单引号中并将其括在方括号中。 (要确保正确指定列的名称,可以使用上面学习的命令打印所有列名称的列表。)

    我们还添加label =“Shape of You”以使该行出现在图例中并设置其对应的标签。

    最后一行代码修改水平轴(或x轴)的标签,其中所需标签放在引号(“...”)中。

    本地运行代码汇总:import pandas as pd

    import matplotlib.pyplot as plt

    import seaborn as sns

    from pandas.plotting import register_matplotlib_converters

    # Path of the file to read

    spotify_filepath = "data-for-datavis/spotify.csv"

    # Read the file into a variable spotify_data

    spotify_data = pd.read_csv(spotify_filepath, index_col="Date", parse_dates=True)

    # Print the first 5 rows of the data

    print(spotify_data.head())

    # Print the last five rows of the data

    print(spotify_data.tail())

    register_matplotlib_converters()

    # Line chart showing daily global streams of each song

    sns.lineplot(data=spotify_data)

    # Set the width and height of the figure

    plt.figure(figsize=(14,6))

    # Add title

    plt.title("Daily Global Streams of Popular Songs in 2017-2018")

    # Line chart showing daily global streams of each song

    sns.lineplot(data=spotify_data)

    print(list(spotify_data.columns))

    # Set the width and height of the figure

    plt.figure(figsize=(14,6))

    # Add title

    plt.title("Daily Global Streams of Popular Songs in 2017-2018")

    # Line chart showing daily global streams of 'Shape of You'

    sns.lineplot(data=spotify_data['Shape of You'], label="Shape of You")

    # Line chart showing daily global streams of 'Despacito'

    sns.lineplot(data=spotify_data['Despacito'], label="Despacito")

    # Add label for horizontal axis

    plt.xlabel("Date")

    plt.show()

    展开全文
  • 以下图为例,使用数据提取网站提取折线图数据。 Hussein, H., Capp, S., & George, W. (1994). Velocity measurements in a high-Reynolds-number, momentum-conserving, axisymmetric, turbulent jet. ...

    提取文献中的折线图/散点图数据

    以下图为例,使用数据提取网站提取折线图数据。


    Hussein, H., Capp, S., & George, W. (1994). Velocity measurements in a high-Reynolds-number, momentum-conserving, axisymmetric, turbulent jet. Journal of Fluid Mechanics, 258, 31-75.

    1. 打开数据提取网站,如下图
      在这里插入图片描述

    2. 导入需要提取的折线图图片

    3. 选择绘图类型,点击Align Axes
      在这里插入图片描述

    4. 横纵轴各选择两个参考点。
      在这里插入图片描述

    5. 点击选中标定点,观察右上角的放大视图,使用光标键调整位置。使用 Shift+方向键 快速移动。调整完毕后,请点击”完成“。
      在这里插入图片描述

    6. 分别输入 X-轴上的两个标定点的 X-值和 Y-轴上的两个标定点的 Y-值,点击确定。
      在这里插入图片描述

    7. 由于要提取的折线为黑色,所以将前景色选为黑色。
      在这里插入图片描述

    8. 选择合适的画笔宽度,将要提取的折线图用画笔覆盖,点击运行( Δx和Δy 表示取点的密度,可自行调整)

    在这里插入图片描述

    1. 提取的点如下图所示,可以自行增加/调整/删除点
      在这里插入图片描述

    2. 调整好数据点后,点击查看数据
      在这里插入图片描述

    3. 根据自己的要求设置合适的输出数字格式,点击Format。折线图的数据如下:
      在这里插入图片描述

    4. 将数据复制到剪切板,在Origin中粘贴数据,点击绘图。选择绘图格式为折线图,将横纵坐标调整即可得到原文献当中的折线图。

    在这里插入图片描述

    数据提取网站:https://apps.automeris.io/wpd/index.zh_CN.html

    展开全文
  • 折线图是用折线将各个数据点连接起来的图表,一般用于展示数据变化的趋势。 区域图则是在折线图的基础上,将指定的区域填充上颜色 通过实现折线图、堆叠区域折线图的两个图表。我们会学习到以下内容 折线图 标题...
  • .xlsx文件只能存储数据,不能存储对数据进行处理的VB代码,而.xlsm文件既可以存储数据,又可以存储代码。 新建一个.xlsm文件(打开.xlsx源数据文件并另存为.xlsm也可以),输入数据源(源数据和VB代码可以从以下...
  • 本节主要讲使用折线图展示数据。 创建界面 首先创建使用折线图展示数据的界面,在view包下创建lineChartFrame.fxml文件,使用Scene Builder设计界面,各个组件的属性和事件方法参考下面的代码: <?xml ...
  • 前言最近做项目的时候,产品说要在后台的首页放多折线图(不是多数据折线图),但我上去网上找,基本是多数据折线图。例如:同时换关键字也没什么可参考的。多折线图实现找不到参考的,只能自己摸索。于是尝试将呈现...
  • 用Echarts练习实现折线图+柱状图+折线图填充,以便后续使用时可直接复制 option = { title: { text: '动态数据', subtext: '纯属虚构' }, tooltip: { trigger: 'axis', axisPointer: { type: 'cr...
  • 复制B列的数据。打开CAD,输入“pl”,回车。然后在命令行直接“Ctrl+V”可以以这些点直接生成一条多段线。上面的例子相当简单。为什么可以直接复制呢?其实CAD是可以读取从Excel在复制过去的内容的。那么我们就可以...
  • 前言最近做项目的时候,产品说要在后台的首页放多折线图(不是多数据折线图),但我上去网上找,基本是多数据折线图。例如: 同时换关键字也没什么可参考的。 多折线图实现找不到参考的,只能自己摸索。于是尝试将呈现...
  • 绘制折线图 2.1创建电影数量变化折线图 2.2 创建电影票房变化折线图 2.3 2015年的电影数量与票房比较分析 饼图与环形图 3.1 酒店价格等级饼图 3.2 酒店价格等吸环形图 一、数据前处理 1.拆分 自定义拆分 2.强制...
  • 从js文件中添加Chart.js折线图到Jinja2/Flask html页面包含图表的设置JS文件看起来是这样的:$(window).on("load", function(){var ctx = $("#line-chart");var chartOptions = {responsive: true,maint...
  • 折线图

    2019-06-09 17:22:04
    统计了数据,为了更好的做出对比,就有了各种各样的图标,现在来做做折线图 用echarts插件 设置宽高位置 <div class="col-9 ml-3" id="tabContent"> <!-- 为ECharts准备一个具备大小(宽高)的Dom --> &...
  • 1. 分段式折线图(1)选择一组数据添加3列辅助列(需要几种颜色就添加几列,这里要记住,数据数据之间必须要连接)(2)直接插入折线图(3)选中数据——点击右键——调整粗细、配色、美化就完成了2. 高低点连接...
  • java(jfreechart)实现各种数据统计图(柱形图,饼图,折线图)【原文地址:http://blog.csdn.net/pzhtpf/article/details/7600100】 最近在做数据挖掘的课程设计,需要将数据分析的结果很直观的展现给...
  • Hello,大家好,今天跟大家分享下如何使用切片器更改图表类型,效果如下动图,在这里忙完可以通过点击不同的图表类型来快速的切换图表,通过柱形图看销售数据对比,折线图看销售数据的走势,圆环图看销售数据占比,...
  • Android——折线图显示 利用 hellocharts-library-1.5.8 jar包实现折线图 hellocharts-library-1.5.8.jar网盘链接 链接:https://pan.baidu.com/s/1sKVNOxQ9U4rR81v1U1OazQ 提取码:i2nn 复制这段内容后打开百度网盘...
  • python数据分析之折线图 导入matplotlib模块 from matplotlib import pyplot as plt 创建一个时间/天气的折线图 x=range(2,26,2) #时间 y=[13,15,23,16,14,34,14,14,16,36,25,26]#气温 plt.plot(x,y)#指定xy轴 ...
  • 折线图堆叠 ' }, tooltip: { trigger: ' axis ' }, legend: { data:lineNum[ " lengend " ] }, grid: { left: ' 3% ' , right: ' 4% ' , bottom: ' 3% ' , containLabel: true }, toolbox: { ...
  • 很多时候需要从后端获取值更新图表,这就涉及到动态更新图表数据; 使用echarts的时候,往往需要x轴和y轴的一一对应数组,比如 xAxis: { data: ["衬衫","羊毛衫","雪纺衫","裤子","高跟鞋","袜子"] }, yAxis: {}, ...
  • 下载网页折线图中的数据 注:这并非普通的静态图表,像是传说中的Echart——基于JavaScript语言编写的前端数据可视化插件。 网页Echart图表截图 思考尝试 手动整理:对于我等懒人来说,能动手就不想动脑。第...
  • 添加”,“删除”,“按高数成绩排序”,“按C++成绩排序”,“修改”,“确定”,“反选”一共9个按钮,以及“学号”,“姓名”,“高数”,“C++”四个编辑框,还有一个list control列表用于显示数据。...
  • matplotlib 是python最著名的绘图库,它提供了一整套和matlab相似的命令API,十分适合交互式地行制图。而且也可以方便地将它作为绘图控件,嵌入GUI应用程序中。...在Linux下比较著名的数据图工具还有gnuplot,这...
  • 代码直接从日记中复制过来的,不方便复制的可以私信发示例代码,不知道怎么上传附件了。 代码有的地方写的不合理或者错误的,请原谅没有检查仔细; 说明:在poi3.x的版本中,没有对图表的支持,至少目前为止没...
  • 上上上个月项目中有一些数据需要用图表进行展示,包括折线图(LineChart)、柱状图(BarChart)、散点图(ScatterChart)、雷达图(RadarChart)、饼图(PieChart)。作为一名初级鶸,接到需求就很自觉地开始在github上寻找第...
  • knitr::opts_chunk$set(echo = TRUE)折线图通常用来对两个连续变量之间的相互依存关系进行可视化,其中,x轴对应于自变量,y轴对应于因变量。一般来说,折线图的x轴对应的是时间变量,但也可以用来表示诸如实验对象...
  • matplotlib简介matplotlib 是python最著名的绘图库,它提供了一整套和matlab相似的命令API,十分适合交互式地行制图。而且也可以方便地将它作为绘图控件,嵌入GUI应用程序中。...在Linux下比较著名的数据图工...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 6,962
精华内容 2,784
关键字:

复制折线图如何添加数据