精华内容
下载资源
问答
  • 目录 1、原始数据 2、GM(1,1)代码 3、结果显示 4、通用代码 1、原始数据 预测这一组数据的走势89677 99215 109655 120333 135823 159878 182321 209407 246619 300670。 2、GM(1,1)代码 clear clc syms a b; c=...

    目录

     

    1、原始数据

    2、GM(1,1)代码

    3、结果显示

    4、通用代码 


    1、原始数据

     预测这一组数据的走势89677 99215 109655 120333 135823 159878 182321 209407 246619 300670

    2、GM(1,1)代码

    clear
    clc
    syms a b;
    c=[a b]';
    A=[89677 99215 109655 120333 135823 159878 182321 209407 246619 300670];
    B=cumsum(A);       %原始数据累加
    n=length(A);
    for i=1:(n-1)
        C(i)=(B(i)+B(i+1))/2;    %生成累加矩阵
    end
    D=A;
    D(1)=[];
    D=D';
    E=[-C;ones(1,n-1)];
    c=inv(E*E')*E*D;
    c=c';
    a=c(1);b=c(2);
    %预测后续数据
    F=[];F(1)=A(1);
    for i=2:(n+10)
        F(i)=(A(1)-b/a)/exp(a*(i-1))+b/a;
    end
    for i=2:(n+10)       %向后预测10年
        G(i)=F(i)-F(i-1);
    end
    t1=1999:2008;
    t2=1999:2018;
    G
    plot(t1,A,'o',t2,G)  %原始数据与预测数据的比较
    
    G =
    
       1.0e+06 *
    
      1 至 12 列
    
             0    0.0893    0.1034    0.1196    0.1385    0.1602    0.1854    0.2146    0.2483    0.2873    0.3325    0.3847
    
      13 至 20 列
    
        0.4452    0.5152    0.5962    0.6899    0.7984    0.9239    1.0691    1.2371
    

    3、结果显示

    4、通用代码 

    function[X,c,error1,error2]= GM11(X0,k)
    format long;
    n=length(X0);
    X1=[];
    X1(1)=X0(1);
    for i=2:n
        X1(i)=X1(i-1)+X0(i);
    end
    for i=1:n-1
        B(i,1)=-0.5*(X1(i)+X1(i+1));
        B(i,2)=1;
        Y(i)=X0(i+1);
    end
    alpha=(B'*B)^(-1)*B'*Y';
    a=alpha(1,1);
    b=alpha(2,1);
    d=b/a;
    c=X1(1)-d;
    X2(1)=X0(1);
    X(1)=X0(1);
    for i=1:n-1
        X2(i+1)=c*exp(-a*i)+d;
        X(i+1)=X2(i+1)-X2(i);
    end
    for i=(n+1):(n+k)
        X2(i)=c*exp(-a*(i-1))+d;
        X(i)=X2(i)-X2(i-1);
    end
    for i=1:n
        error(i)=X(i)-X0(i);
        error1(i)=abs(error(i));
        error2(i)=error1(i)/X0(i);
    end
    c=std(error1)/std(X0);

      命令窗口输入:

    k=3;
    X0=[98.6 104.4 107.3 120.1 115.9 109.7 98.7];
    [X,c,error1,error2]=GM11(X0,k) %得出往后k个数据

     

    展开全文
  • 前面所做的都是从时间尺度上研究的变化趋势,而从空间尺度上分析,能够更加直观地看出温度变化的地理位置。 M-K(Mann-Kendall)是世界气象组织推荐并被广泛用于实际研究的非参数检验方法,是时间序列趋势分析方法...

    前面所做的都是从时间尺度上研究的变化趋势,而从空间尺度上分析,能够更加直观地看出温度变化的地理位置。

    M-K(Mann-Kendall)是世界气象组织推荐并被广泛用于实际研究的非参数检验方法,是时间序列趋势分析方法之一。它不要求被分析样本遵从一定分布,同时也不受其它异常值的干扰,对于非正统分布的气象数据,M-K秩次相关检验具有更加突出的适用性。

    M-K趋势检验原理

    定义检验统计量SS
    S=i=2nj=1i1sign(XiXj) S=\sum_{i=2}^n\sum_{j=1}^{i-1}sign(X_i-X_j)
    其中, sign()sign()为符号函数。当XiXjX_i-X_j小于、等于或大于0时,sign(XiXj)sign(X_i-X_j)分别为-1、0或1;M-K统计量公式SS大于、等于或小于0时分别为:
    Z={(S1)/n(n1)(2n+5)/18S>00S=0(S+1)/n(n1)(2n+5)/18S<0Z= \begin{cases} {(S-1)}/{\sqrt{n(n-1)(2n+5)/18}} \qquad & S \gt 0 \\ 0 \qquad & S = 0 \\ {(S+1)}/{\sqrt{n(n-1)(2n+5)/18}} \qquad & S \lt 0 \\ \end{cases}
    ZZ为正值表示增加趋势,负值表示减少趋势。ZZ的绝对值在大于等于1.28、1.64和2.32时表示分别通过了信度90%、95%和99%的显著性检验。

    8.1 分别对NCEP和观测数据进行逐点趋势分析

    %NCEP数据逐点变化趋势s1
    % 导入数据T1
    Y1=reshape(T1,[72,128,12,35]);
    Y1=nanmean(Y1,3);
    Y1=squeeze(Y1);
    
    for j=1:128
    	for i=1:72
    		if isnan(Y1)==1
    			continue
    		else
    			y=Y1(i,j,:);
    			n = 35;
    			dt=1;
    		
    			% 计算斜率
    			ndash = n * ( n - 1 ) / 2;
    			s = zeros( ndash,1 );
    			s=nan;
    			r = 1;
    			for p = 1:n-1
    				for q = p+1:n
    					s(r) = ( y(q) - y(p) ) / ( q - p ) / dt;
    					r = r + 1;
    				end
    			end 
    			s1(i,j) = median( s );
    		end
    	end
    end
    pcolor(s1);
    shading flat
    

    % 观测数据逐点变化趋势s2
    % 导入数据T2
    Y2=reshape(T2,[72,128,12,35]);
    Y2=nanmean(Y2,3);
    Y2=squeeze(Y2);
    
    for j=1:128
    	for i=1:72
    		if isnan(Y2)==1
    			continue
    		else
    			y=Y2(i,j,:);
    			n = 35;
    			dt=1;
    		
    			% 计算斜率
    			ndash = n * ( n - 1 ) / 2;
    			s = zeros( ndash,1 );
    			s=nan;
    			r = 1;
    			for p = 1:n-1
    				for q = p+1:n
    					s(r) = ( y(q) - y(p) ) / ( q - p ) / dt;
    					r = r + 1;
    				end
    			end
    			s2(i,j) = median( s );
    		end
    	end
    end
    pcolor(s2);
    shading flat
    

    即可得到NCEP数据和观测数据的平均温度逐点变化趋势,用同样的方法可以得到最高温度、最低温度的变化趋势。(图略)

    8.2 平均、最高、最低温度差值的趋势

    % 两套数据年平均值逐点变化趋势sy
    % 导入数据T1、T2
    Y1=reshape(T1,[72,128,12,35]);
    Y1=nanmean(Y1,3);
    Y1=squeeze(Y1);
    Y2=reshape(T2,[72,128,12,35]);
    Y2=nanmean(Y2,3);
    Y2=squeeze(Y2);
    
    for j=1:128
    	for i=1:72
    		Y=Y2-Y1;
    		y=Y(i,j,:);
    		n = 35;
    		dt=1;
    		% 计算斜率
    		ndash = n * ( n - 1 ) / 2;
    		s = zeros( ndash,1 );
    		s=nan;
    		r = 1;
    		for p = 1:n-1
    			for q = p+1:n
    				s(r) = ( y(q) - y(p) ) / ( q - p ) / dt;
    				r = r + 1;
    			end
    		end
    		sy(i,j) = median( s );
    	end
    end
    pcolor(sy);
    shading flat
    

    最高、最低温度的与之类似,得到NCEP数据和观测数据平均温度、最高温度、最低温度差值的逐点变化趋势。(图略)

    8.3 退耕还林前后的温度差值对比

    仍然以1999年为界限,1981-1999年为退耕前,2000-2013年为退耕后。
    保存之前由T1、T2计算得到的Y1、Y2两套数据,以便后面直接调用,其格式为72*128*35。

    % 导入数据Y1、Y2
    Y=Y2-Y1;
    Y=Y(:,:,3:35);
    YA=Y(:,:,1:19);
    YB=Y(:,:,20:33);
    
    % 退耕前的逐点趋势
    for j=1:128
    	for i=1:72
    		y=YA(i,j,:);
    		n = 19;
    		dt=1;
    		% 计算斜率
    		ndash = n * ( n - 1 ) / 2;
    		s = zeros( ndash,1 );
    		s=nan;
    		r = 1;
    		for p = 1:n-1
    			for q = p+1:n
    				s(r) = ( y(q) - y(p) ) / ( q - p ) / dt;
    				r = r + 1;
    			end
    		end
    		sya(i,j) = median( s );
    	end
    end
    pcolor(sya);
    shading flat
    
    % 退耕后的逐点趋势
    for j=1:128
    	for i=1:72
    		y=YB(i,j,:);
    		n = 14;
    		dt=1;
    		% 计算斜率
    		ndash = n * ( n - 1 ) / 2;
    		s = zeros( ndash,1 );
    		s=nan;
    		r = 1;
    		for p = 1:n-1
    			for q = p+1:n
    				s(r) = ( y(q) - y(p) ) / ( q - p ) / dt;
    				r = r + 1;
    			end
    		end
    		syb(i,j) = median( s );
    	end
    end
    pcolor(syb);
    shading flat
    

    得到NCEP数据和观测数据平均温度差值1981-1999年和2000-2013年的逐点变化趋势。(图略)

    最高、最低温度差值退耕前后的计算与之类似。


    相关链接:
    Matlab处理气象数据——目录

    展开全文
  • 数据分析统计学基础之数据趋势

    千次阅读 2019-05-15 18:01:25
    数据的集中趋势就是一组数据向数据的中心值靠拢的程度。   集中趋势是统计学中的重要统计分析指标,常用的有平均数,中位数和众数等。 1.1平均数   平均数为集中趋势的最常用测度值,目的是确定一组数据的均衡点...

    数据的趋势

    一.数据的集中趋势

      集中趋势又称“数据的中心位置”、“集中量数”等。它是一组数据的代表值.数据的集中趋势就是一组数据向数据的中心值靠拢的程度。

      集中趋势是统计学中的重要统计分析指标,常用的有平均数中位数众数等。

    1.1平均数

      平均数为集中趋势的最常用测度值,目的是确定一组数据的均衡点。用平均数表示一组数据的情况,有直观、简明的特点,所以在日常生活中经常用到,如平均的速度、平均的身高、平均的产量、平均的成绩等。

      不是所有类型的资料都能使用平均数。平均数适合用于数值型数据,不能用于分类数据和顺序数据。

    1.1.1 算术平均数

    一组样本的和除以该样本的数量,记作
    xˉ=x1+x2++xnn {\bar {x}}={\frac {x_{1}+x_{2}+\cdots +x_{n}}{n}}
      在实际工作中,很少使用算术平均数,因为并不准确,特别是有异常值存在的时候,受极值的影响较大.

    1.1.2 加权算术平均数

    是具有不同权重的数据的算术平均数,记作
    xˉ=x1f1+x2f2++xnfnf1+f2++fn=xff \bar{x}=\frac{x_1f_1+x_2f_2+···+x_nf_n}{f_1+f_2+···+f_n}=\frac{\sum xf}{\sum f}
    式中f代表各做变量值出现的频数。
    例如,在一次分析城市出行路线的项目中,可以根据小区的户数或人数来赋予相对应的权重,根据权重可以在生成图时给于不同的颜色以区分哪条路出行人数较多。

    1.1.3 几何平均数

    n个数据相乘后开 n 次方。记作:
    (i=1nxi)1n=x1x2xnn {\displaystyle \left(\prod _{i=1}^{n}x_{i}\right)^{\frac {1}{n}}={\sqrt[{n}]{x_{1}x_{2}\cdots x_{n}}}}
      几何平均数多用于计算平均比率和平均速度。如:平均利率、平均发展速度、平均合格率等。使用场合较少。

    1.2 众数

      众数是在一组数据样本中,出现次数最多的数。一组数据可以有多个众数,也可以没有众数。它主要用于定类(品质标志)数据的集中趋势

    特点:①不受极值影响 ;②只有在数据量大的时候才有意义

    1.3 分位数

      定义:分位数(Quantile),亦称分位点,是指将一个随机变量的概率分布范围分为几个等份的数值点,常用的有中位数(即二分位数)、四分位数、百分位数等。在箱型图中使用较多。
    在这里插入图片描述

    分位数意义:
      表示了在这个样本集中从小至大排列之后小于某值的样本子集占总样本集的比例,可以利用概率分布来为我们确定当数据有序分布后处于某个特殊位置的数值,再利用其为我们达到选择,筛选,修正等目标。(来自知乎回答:OrionTheStar)。

      人们经常会将数据划分为4个部分,每一个部分大约包含有1/4即25%的数据项。这种划分的临界点即为四分位数。它们定义如下:

    • Q1=第1四分位数,即第25百分位数;
    • Q2=第2四分位数,即第50百分位数;
    • Q3=第3四分位数,即第75百分位数。

    四分位数的计算:
    首先确定四分位数的位置:

    Q1的位置= (n+1) × 0.25
    Q2的位置= (n+1) × 0.5
    Q3的位置= (n+1) × 0.75
    n表示项数

    实例1
    数据总量: 6, 47, 49, 15, 42, 41, 7, 39, 43, 40, 36
    由小到大排列的结果: 6, 7, 15, 36, 39, 40, 41, 42, 43, 47, 49
    一共11项
    Q1 的位置=(11+1) × 0.25=3, Q2 的位置=(11+1)× 0.5=6, Q3的位置=(11+1) × 0.75=9
    则 Q1 = 15,Q2 = 40,Q3 = 43

    二、数据的离中趋势

    2.1 极差

    指一组数据中最大值与最小值之差。
    d=maxmin d=max-min
      在实际中,极差常用来检查产品质量。在正常生产条件下,极差在一定范围内波动,若极差超过给定的范围,就说明有异常情况出现。

    2.2 四分位距

      四分位距是上四分位数与下四分位数之差。四分位距通常是用来构建箱形图,以及对概率分布的简要图表概述。
    公式:
    IQR=Q3Q1 IQR = Q3 − Q1
    意义:反应数据中间部分各变量值的最大值和最小值的差距。

    2.3 平均差

      平均差是总体各单位标志对其算术平均数的离差绝对值的算术平均数。它综合反映了总体各单位标志值的变动程度。平均差越大,则表示标志变动度越大,反之则表示标志变动度越小。

      平均差是反应各标志值与算术平均数之间的平均差异

    MD=xxˉNMD=\frac{\sum|x-\bar{x}|}{N}

    2.4 方差

      方差是和中心偏离的程度,用来刻画数据的波动性和稳定性(即这批数据偏离平均数的大小)并把它叫做这组数据的方差,记作S².

    方差的計算公式为:

    s2=i=1N(XiXˉ)2Ns^2=\frac{\sum_{i=1}^N(X_i-\bar{X})^2}{N}

      当数据分布比较分散(即数据在平均数附近波动较大)时,各个数据与平均数的差的平方和较大,方差就较大;当数据分布比较集中时,各个数据与平均数的差的平方和较小。因此方差越大,数据的波动越大;方差越小,数据的波动就越小。

    2.5 标准差

      标准差(Standard Deviation) ,中文环境中又常称均方差,是离均差平方的算术平均数的平方根,用σ表示。标准差是方差的算术平方根。标准差表示的就是样本数据的离散程度。平均数相同的两组数据,标准差未必相同。

      意义:由于方差是数据的平方,与检测值本身相差太大,人们难以直观的衡量,所以常用方差开根号换算回来这就是我们要说的标准差。

      方差是实际值与期望值之差平方的平均值,而标准差是方差的算术平方根。

    2.6 离散系数

      离散系数又称变异系数,是统计学当中的常用统计指标。离散系数是测度数据离散程度的相对统计量,主要是用于比较不同样本数据的离散程度。离散系数大,说明数据的离散程度也大;离散系数小,说明数据的离散程度也小。
    公式:

    V=Sxˉ×100 V=\frac{S}{\bar{x}}\times 100%
      当进行多组数据进行比较时,如果度量单位与平均数相同,就可以直接利用标准差比较;但是单位或平均数不同是,而要采用标准差与平均数的比值,即离散系数来比较。
    意义:①.去量纲,消除单位的影响
       ②可以比较多组数据的波动程度,比如第一天抓取的数据和第二天抓取的数据做比较
       ③数值越小代表相对来说越稳定

    展开全文
  • 需求如下 1、数据库中有一张表名为alarm_data的表,有time(时间),address...2、我需要根据地址、日期,来查询当天时间内位移变化趋势 3、要求折线图的形式展现  折线图横坐标是时间0,1,2,3,4,5,6,7,8,9,10.........

    需求如下

    1、数据库中有一张表名为alarm_data的表,有time(时间),address(地址),shift(位移)三列

         这个表是用来存储当发生位移报警时,发生的时间、报警地址、报警位移的,不存储正常数据;

    2、我需要根据地址、日期,来查询当天时间内位移变化趋势

    3、要求折线图的形式展现

         折线图横坐标是时间0,1,2,3,4,5,6,7,8,9,10........23

        纵坐标是位移


    程序步骤

    1、根据时间和地址,按照时间升序,把查询的数据存储在集合里面

    2、在存储数据时,要知道报警时间在0:00-1:00,1:00-2:00 ,2:00-3:00........哪个区间内,不然折线图的横坐标无法对应

    3、假设查询地址0号,日期2019-01-26日的报警数据的时间区间是(3时7时,12时,21时);

          其他时间点就没有报警,位移就是正常的位移;

          假设正常位移是6.57mm,我们需要得到一个数组
     

    时间 0 1 2 3 4 5 6 7 .........
    位移 6.57 6.57 6.57 报警位移 6.57 6.57 6.57 报警位移 ..........

     

     

     5、折线图的横坐标对应的是时间,纵坐标是位移;只需要循环遍历一下数据就可以得到折线图


    代码如下

    1、查询数据库里面的数据的方法

    package cn.com.jdbc;
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.text.ParseException;
    import java.util.ArrayList;
    import java.util.List;
    
    import cn.com.pack.Alarm_Data;
    import cn.com.pack.Six;
    import cn.com.way.Blocks;
    public class GetConnection {
    	// 连接数据库,把数据存储到数据库中
    	// 1.常量
    	// 声明Connection对象
    	static Connection con = null;
    	// 驱动程序名
    	static String driver = "com.mysql.jdbc.Driver";
    	// URL指向要访问的数据库名mydata
    	static String url = "jdbc:mysql://192.168.16.8:3306/lf";
    	// MySQL配置时的用户名
    	static String user = "root";
    	// MySQL配置时的密码
    	static String password = "root";
    	//查询alarm_data表里的数据
    	public static List<Six> selectinfo(String sql, String[] str) {
    		ResultSet rs=null;
    		PreparedStatement ps=null;
    		List<Six> list=new ArrayList<Six>();
    		Six six=null;
    		// 加载驱动程序
    		try {
    			Class.forName(driver);
    			// 1.getConnection()方法,连接MySQL数据库!!
    			con = DriverManager.getConnection(url, user, password);
    			ps = con.prepareStatement(sql);
    			for (int i = 0; i < str.length; i++) {
    				ps.setString(i+1, str[i]);
    			}
    			rs=ps.executeQuery();
    			while(rs.next()){
    				//由于报警的时间不是连续的,所以需要判断
    				String time=rs.getString(1);
    				//根据时间获取想要的int类型的值9:00-10:00之间的就返回9
    				int t=Blocks.DayTime(time);
    				String shift=rs.getString(3);
    				//把t和shift放在一起
    				six=new Six(shift, t);
    				list.add(six);
    			}
    		} catch (ClassNotFoundException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		} catch (SQLException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		} catch (ParseException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}finally{
    			try {
    				rs.close();
    				ps.close();
    				con.close();
    			} catch (SQLException e) {
    				// TODO Auto-generated catch block
    				e.printStackTrace();
    			}
    			
    			
    		}
    		return list;
    
    	}
    
    }
    

       判断时间在哪个时间区间内

    package cn.com.way;
    import java.text.ParseException;
    import java.text.SimpleDateFormat;
    public class Blocks {
    	//给定日期和一个时间,就可以知道这个时间的区间范围
    		public static int DayTime(String armtime) throws ParseException{
    			//根据具体的时间来获取想要的日期
    			String rq=Blocks.debu(armtime);
    			int y=0;
    			SimpleDateFormat sim=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    				long arm0=sim.parse(armtime).getTime();
    				for(int i=0;i<24;i++){
    					String begin=rq+" ";
    					String end =rq+" ";
    					String a=Integer.toString(i);
    					String b=Integer.toString(i+1);
    					if(a.length()==1){
    						a="0"+a;
    					}
    					if(b.length()==1){
    						b="0"+b;
    					}
    					begin=begin+a+":00:00";
    					  end=end+b+":00:00";
    					  //把开始区间时间和结束区间时间转换为long类型。然后比较
    					  long arm1=sim.parse(begin).getTime();
    					  long arm2=sim.parse(end).getTime();
    					  if(arm0>arm1&&arm0<arm2){
    						  y=i;
    						 System.out.println(armtime+"在区间"+begin+"-"+end+"之间"); 
    						 break;
    					  } 
    				}
    				return y;     }
    		//把字符串根据空格进行切割,来获取想要的日期
    		public static String debu(String rq){			
    					String [] str=rq.split(" ");
    					return str[0];
    			}
    }
    

     


     

     2、查询数据,处理日期和时间

    package cn.com.chart;
    import java.text.SimpleDateFormat;
    import java.util.Date;
    import java.util.List;
    import cn.com.jdbc.GetConnection;
    import cn.com.pack.Six;
    import cn.com.way.InsertNum;
    public class Displacement {
    	/*
    	 * author:命运的信徒 date:2019/1/24 arm:根据一天的24个点来查询位移变化量
    	 */
    	static int [] stri=new int[24];
    	static double [] doub=new double[24];
    	public static void selectPlace(String address, String rq) {
    		// 1.根据地址、当天的日期、和标准量,来计算偏移量
    		int add = Integer.parseInt(address);
    		Date date = new Date();
    		SimpleDateFormat sim = new SimpleDateFormat("yyyy-MM-dd");
    		String dates = sim.format(date);
    		// 2.查询数据库里当天的所有位移量
    		String sql = "select * from alarm_data where address=? and time like ? order by time asc";
            rq=rq+" %";
    		String [] str=new String[]{address,rq};
            List<Six> list=GetConnection.selectinfo(sql, str);
            //开始排序,填充了
            int m=0;
            for (Six six : list) {
            	//string类型变成double类型
            	double dou=Double.parseDouble(six.getOne());
            	m=InsertNum.fill(m+1,six.getTwo(),dou,stri,doub);
    		}
            
    	}
    
    }
    

     //给出一组任意长度的数据(0<=数据的值<=23)9,11,12,15,21
    //得到一个固定长度为23的一组数据,数据所对应的位置正是值+1;如9应该放在第10位,0应该放在第一位

    package cn.com.way;
    public class InsertNum {
    //给出一组任意长度的数据(0<=数据的值<=23)9,11,12,15,21
    //得到一个固定长度为23的一组数据,数据所对应的位置正是值+1;如9应该放在第10位,0应该放在第一位
    public static int fill(int a,int b,double c,int [] stri,double [] doub){
    	for (int i = a; i < 24; i++) {
    		if(b==i){
    			stri[i]=b;
    			doub[i]=c-6.5746;
    			System.out.println("-时间段-"+b+"-位移-"+c);
    			break;
    		}else{
    			stri[i]=0;
    			doub[i]=0;
    		}
    	}
    	return b;
    }
    
    
    }
    

     

    封装类

    package cn.com.pack;
    
    public class Six {
    	private String one;
    	private int two;
    	private String three;
    	private int four;
    	private String five;
    	private int six;
    	public String getOne() {
    		return one;
    	}
    	public void setOne(String one) {
    		this.one = one;
    	}
    	public int getTwo() {
    		return two;
    	}
    	public void setTwo(int two) {
    		this.two = two;
    	}
    	public String getThree() {
    		return three;
    	}
    	public void setThree(String three) {
    		this.three = three;
    	}
    	public int getFour() {
    		return four;
    	}
    	public void setFour(int four) {
    		this.four = four;
    	}
    	public String getFive() {
    		return five;
    	}
    	public void setFive(String five) {
    		this.five = five;
    	}
    	public int getSix() {
    		return six;
    	}
    	public void setSix(int six) {
    		this.six = six;
    	}
    	public Six(String one, int two) {
    		super();
    		this.one = one;
    		this.two = two;
    	}
    
    }
    

     


    生成折线图代码

    package cn.com.chart;
    import java.awt.Color;
    import org.jfree.chart.ChartFactory;
    import org.jfree.chart.ChartFrame;
    import org.jfree.chart.JFreeChart;
    import org.jfree.chart.plot.CategoryPlot;
    import org.jfree.chart.plot.PlotOrientation;
    import org.jfree.data.category.CategoryDataset;
    import org.jfree.data.category.DefaultCategoryDataset;
    public class TimeChart {
    	public static void main(String[] args) {
    		CategoryDataset mDataset = GetDataset();
    		JFreeChart mChart = ChartFactory.createLineChart("折线图",// 图名字
    				"时",// 横坐标
    				"位移",// 纵坐标
    				mDataset,// 数据集
    				PlotOrientation.VERTICAL, true, // 显示图例
    				true, // 采用标准生成器
    				false);// 是否生成超链接
    
    		CategoryPlot mPlot = (CategoryPlot) mChart.getPlot();
    		mPlot.setBackgroundPaint(Color.LIGHT_GRAY);
    		mPlot.setRangeGridlinePaint(Color.BLUE);// 背景底部横虚线
    		mPlot.setOutlinePaint(Color.black);// 边界线
    
    		ChartFrame mChartFrame = new ChartFrame("折线图", mChart);
    		mChartFrame.pack();
    		mChartFrame.setVisible(true);
    
    	}
    
    	public static CategoryDataset GetDataset() {
    		DefaultCategoryDataset mDataset = new DefaultCategoryDataset();
    		//1.执行方法
    		Displacement.selectPlace("0", "2019-01-25");
    		//获取数组
    		int [] str=Displacement.stri;
    		double [] dou=Displacement.doub;
    		for (int i = 0; i < dou.length; i++) {
    			mDataset.addValue(dou[i],"地址0",i+"h");
    		}
    		
    		return mDataset;
    	}
    }
    

     


     折线图如下

     

    展开全文
  • 个产品,如果你不能衡量它,你就不能了解它,自然而然,你就无法改进它。数据说到底,就是这样个工具——通过数据,我们可以衡量产品,可以了解产品,可以在数据驱动下改进产品。 数据分析和数据处理本身是个非常...
  • 数据分析项目“探索未来气候发展趋势、概览 概览 在这个项目中,我们将分析本地和全球的气温数据,并比较你居住地的气温走向与全球气温走向。作者位于云南昆明。 使用的工具 整个项目使用的工具包括SQL...
  • 数据的集中趋势描述是寻找反应事物特征的数据集合的代表值或中心值,这个代表值或中心值可以很好反映事物目前所处的位置和发展水平,通过对事物集中趋势指标的多次测量和比较,还能够说明事物的发展和变化趋势数据...
  • 计算与推断思维 数据科学

    万次阅读 2017-11-11 21:30:35
    数据科学 原文:Data Science 译者:飞龙 协议:CC BY-NC-SA 4.0 自豪地采用谷歌翻译 什么是数据科学数据科学是通过探索,预测和推断,从大量不同的数据集中得出有用的结论。探索涉及识别信息中的规律...
  • 目前有某个产品每天的销量数据,想通过这些数据看这个产品的销量趋势 2. 原理3. 代码import numpy from scipy.optimize import leastsq import pylab def zuixiaoerchen(arrayY, picTitle): print(f"arrayY: {...
  • 数据科学研究的现状与趋势全解

    千次阅读 2019-11-27 17:29:10
    大数据时代的到来催生了一门新的学科——数据科学。首先,本文探讨了数据科学的内涵、发展简史、学科地位及知识体系等基本问题,并提出了专业数据科学与专业中的数据科学之间的区别与联系;其次,分析现阶段数据科学...
  • 未来5-10年计算机视觉发展趋势

    千次阅读 多人点赞 2020-05-21 09:35:50
    未来5-10年计算机视觉发展趋势 来源:CCF计算机视觉专委会 ...计算机视觉是人工智能的...我们将研讨内容按专题实录整理,尽最大可能以原汁原味的形式还原观点争鸣现场,希望有助于激发头脑风暴,产生系列启...
  • 数据曲线拟合,数据趋势判断

    万次阅读 2012-11-28 17:11:42
    最近在弄一些数据趋势判断该方面的东西,下面代码是网友使用最小二乘法做的数据拟合算法的java实现 public class PolyFitForcast { public PolyFitForcast() { } /** * * 函数功能:最小二乘法曲线拟合 ...
  • 数据挖掘——时间序列算法之趋势拟合法
  • 数据的描述性统计欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入段漂亮的代码片生成个适合你的列表创建个表格设定内容居中、居左、居右...
  • 【Matlab】 多年NDVI数据的sen趋势分析

    千次阅读 2021-01-17 14:39:24
    最近老师在课上安排了个汇报作业,要求对某地区的多年NDVI数据进行趋势分析,对于小白的我来说,真是!唉!但是功夫不负有心人,在我充分利用百度搜索、谷歌搜索和Bing搜索后,终于让我找到了相关教程和知识。...
  • 数据可视化的七大趋势

    千次阅读 2018-08-14 10:00:43
    摘要:ProPublica的调查记者兼开发者Lena Groeger,以及金融时报的数据可视化记者Jane Pong在全球深度报道大会上分享了他们对当前数据可视化趋势的一些看法。 关键词: 大数据 可视化  随着科技的不断进步与新设备...
  • 数据科学研究的现状与趋势

    千次阅读 2018-03-05 00:00:00
    来源:数据科学DataScience大数据时代的到来催生了一门新的学科——数据科学。本文第1节探讨数据科学的内涵、发展简史、学科地位和知识体系等四个基本问题,并提出了数据科学的两个基本类型——专业数据科学和专业中...
  • 其实有志于这行的人,可以通过历史数据获得正向系统的个佐证。 这里也有个很大的争议,就是有关于市场变化的问题。我们行业里面有种看法叫市场是不断变化的,这个市场在不断的演变。我个人认为市场局部的...
  • 在很多工业领域中,很多工业...比如有这么一组数据:6.194, 6.199, 6.197, 6.191, 6.204, 6.194,6.194, 6.202, 6.197, 6.194, 6.199, 6.194,6.202, 6.197, 6.197, 6.199, 6.199 使用echarts折线图呈现,默认情况下...
  • 学研究产生大量的数据,这些数据具有高维、小样本、高噪声等复杂特征。如何从复杂的代谢数据中提取出有价值的信息,筛选出潜在的生物标志物成为近年来代谢学研究的热点和难点。据此,本文针对目前代谢学...
  • 【摘要】本文从谷歌流感趋势2009年前后表现差异谈起,讨论了大数据分析容易面临的大数据自大、算法演化、看不见的动机导致数据生成机制变化等陷阱,以及对我国大数据产业发展的借鉴。本文认为,为健康发展大数据产业...
  • 摘要:今日,OpenStack基金会正式对外发布《Cloud Edge Computing: Beyond the Data Center》中文版白皮书,中文名:《边缘计算-跨越传统数据中心》,数位来自英特尔、九州云的社区志愿者参与了中文版翻译。...
  • 推荐 :数据科学研究的现状与趋势

    千次阅读 2018-03-02 00:00:00
    作者:朝乐门(中国人民大学)、邢...首先,探讨了数据科学的内涵、发展简史、学科地位及知识体系等基本问题,并提出了专业数据科学与专业中的数据科学之间的区别与联系;其次,分析现阶段数据科学的研究特点,并分别提
  • 计算机硬件简介及组装须知

    千次阅读 2018-06-15 20:23:11
    BIOS(Basic Input/Output System,基本输入输出系统)全称是ROM-BIOS,是只读存储器基本输入/输出系统的简写,它实际是一组被固化到电脑中,为电脑提供最低级最直接的硬件控制的程序,它是连通软件程序和硬件设备...
  • 写在前面Matplotlib提供了大量实现数据可视化功能的模块,采用面向对象进行封装,在编写大型应用时通过面向对象方式将更加有效,这里只是对matplotlib的一些简单功能进行总结,需要更高级别的应用时,请多参考官方...
  • 本文由中国科学院自动化研究所胡占义研究员撰写,对计算机视觉40多年的发展历程进行了简要总结,包括:马尔计算视觉理论,主动视觉与目的视觉,多视几何与摄像机自标定,以及基于学习的视觉。在此基础上,对计算机...
  • 云原生背景介绍与思考 图是基于 ECS 底座的 EMR 架构, 这是一套非常完整的开源大数据生态, 也是近 ...计算引擎层, 包括熟知的 Spark, Presto、 Flink 等这些计算引擎。数据应用层, 如阿里自研的 DataWorks、 P
  • 计算机视觉入门系列() 综述

    万次阅读 多人点赞 2020-12-16 04:42:36
    计算机视觉入门系列() 综述自大二下学期以来,学习计算机视觉及机器学习方面的各种课程和论文,也亲身参与了一些项目,回想起来求学过程中难免走了不少弯路和坎坷,至今方才敢说堪堪入门。因此准备写个计算机...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 71,525
精华内容 28,610
关键字:

如何计算一组数据的变化趋势