精华内容
下载资源
问答
  • 1、数据集预览 原创文章 113获赞 137访问量 7万+ 关注 私信 展开阅读全文 作者:Vivid-victory
  • 本期介绍一种常用的相关系数:皮尔逊相关系数(Person)。相关系数可用来衡量两个变量之间的相关性的大小,根据数据满足的不同条件,我们要选择不同的相关系数进行计算和分析。一、相关的基本数学概念总体和样本总体:...

    本期介绍一种常用的相关系数:皮尔逊相关系数(Person)。

    相关系数可用来衡量两个变量之间的相关性的大小,根据数据满足的不同条件,我们要选择不同的相关系数进行计算和分析。

    一、相关的基本数学概念

    总体和样本

    • 总体:所要考察对象的全部个体

    • 样本:从总体中所抽取的一部分个体叫做总体的一个样本。

    • 我们可以通过计算样本的统计量来估计总体的统计量

      • 例如:使用样本均值、样本标准差来估计总体的的均值(平均水平)和总体的标准差(偏离程度)

    二、皮尔逊相关系数(Person)

    1. 协方差(用于引出相关系数的定义)

    74d7ffaa3665f16fe87e2eb5eb38c389.png

    E(X)为第一个X组数据的均值;E(X)为y组数据的均值。总体的协方差是第i个X和Y减去均值的乘积加和除以样本总数。协方差的大小表示的是两个变量的总体的误差,用于度量各个维度偏离其均值的程度。

    协方差为0时,两者独立。协方差的绝对值越大,两者对彼此的影响越大,反之,越小。

    由协方差可以引出相关系数的定义。

    • 我们观察协方差的公式,可以发现,X,Y(即,两个变量)的量纲会影响协方差的大小,因此并不适合比较大小,由此引出了相关系数。

    2. 总体皮尔逊Person相关系数

    208d68d7ead9e00b59b40e05783f26f5.png

    • 观察总体Person相关系数的公式:

      我们发现皮尔逊相关系数可以看成消除了两个变量量纲影响,即将X和Y标准化后的协方差。

       因此,我们可以使用皮尔逊相关系数来衡量两个变量线性相关的程度。

    3. 样本皮尔逊Person相关系数

    c490abade1800adec8ff389ce79a4a60.png

    4.皮尔逊相关系数的使用范围

    • 两个变量之间是线性关系,且是连续数据。

    • 两个变量的总体是正态分布,或接近正态的单峰分布。

    • 两个变量的观测值是成对的,且每对观测值之间相互独立。

    通常情况下通过以下取值范围判断变量的相关强度:相关系数 (均取绝对值后):0.8-1.0 极强相关0.6-0.8 强相关0.4-0.6 中等程度相关0.2-0.4 弱相关0.0-0.2 极弱相关或无相关

    三、画皮尔逊相关系数图

    因为画图属于比较简单的操作,所以不打算专门写文章来叙述如何画折线图之类的。如果要画什么图就去找相应的实现代码,用自己的数据并对图的参数进行修改就可以啦。这里我们来讲皮尔逊相关系数图的实现案例

    代码:

    # -*- coding: UTF-8 -*-#画heatmapimport seaborn as snsimport pandas as pdimport matplotlib.pyplot as plt#pandas读取csv数据的方法(之前有讲),header=None表示无表头dataset = pd.read_csv("a.csv",header=None)#这里的数据是DataFrame形式,seaborn读的就是这种类型的数据 print(dataset)#求相关性系数cov=dataset.corr()#定义画布大小plt.subplots(figsize=(10, 10))#调用seaborn库中额heatmap算法sns.heatmap(cov)#显示出图片plt.show()

    11f836a5819b9ee1e37d19140c4b1009.png

    但是我们发现默认参数画出来的图不太好看,我们可以自己设置想要的参数,详情见sns.heatmap()函数

    seaborn.heatmap(data, vmin=None, vmax=None, cmap=None, center=None, robust=False, annot=None, fmt='.2g', annot_kws=None, linewidths=0, linecolor='white', cbar=True, cbar_kws=None, cbar_ax=None, square=False, xticklabels='auto', yticklabels='auto', mask=None, ax=None, **kwargs)

    我们依次来介绍下这些参数:

    • data(数据参数):矩阵数据集,可以是numpy的数组(array),也可以是pandas的DataFrame。如果是DataFrame,则df的index/column信息会分别对应到heatmap的columns和rows,即df.index是热力图的行标,df.columns是热力图的列标。

    • vamx,vmin(矩阵块颜色参数):分别是热力图的颜色取值最大和最小范围,默认是根据data数据表里的取值确定

    • .cmap:从数字到色彩空间的映射,取值是matplotlib包里的colormap名称或颜色对象,或者表示颜色的列表;改参数默认值:根据center参数设定.

    • center:数据表取值有差异时,设置热力图的色彩中心对齐值;通过设置center值,可以调整生成的图像颜色的整体深浅;设置center数据时,如果有数据溢出,则手动设置的vmax、vmin会自动改变.

    • robust:默认取值False;如果是False,且没设定vmin和vmax的值,热力图的颜色映射范围根据具有鲁棒性的分位数设定,而不是用极值设定.

    • annot(annotate的缩写):默认取值False;如果是True,在热力图每个方格写入数据;如果是矩阵,在热力图每个方格写入该矩阵对应位置数据

    • fmt:字符串格式代码,矩阵上标识数字的数据格式,比如保留小数点后几位数字

    • annot_kws:默认取值False;如果是True,设置热力图矩阵上数字的大小颜色字体,matplotlib包text类下的字体设置:

    • linewidths:定义热力图里“表示两两特征关系的矩阵小块”之间的间隔大小

    • linecolor:切分热力图上每个矩阵小块的线的颜色,默认值是’white’

    • cbar:是否在热力图侧边绘制颜色刻度条,默认值是True

    • cbar_kws:热力图侧边绘制颜色刻度条时,相关字体设置,默认值是None

    • cbar_ax:热力图侧边绘制颜色刻度条时,刻度条位置设置,默认值是None

    • xticklabels, yticklabels:xticklabels控制每列标签名的输出;yticklabels控制每行标签名的输出。默认值是auto。如果是True,则以DataFrame的列名作为标签名。如果是False,则不添加行标签名。如果是列表,则标签名改为列表中给的内容。如果是整数K,则在图上每隔K个标签进行一次标注。如果是auto,则自动选择标签的标注间距,将标签名不重叠的部分(或全部)输出

    • mask:控制某个矩阵块是否显示出来。默认值是None。如果是布尔型的DataFrame,则将DataFrame里True的位置用白色覆盖掉

    • ax:设置作图的坐标轴,一般画多个子图时需要修改不同的子图的该值

    • **kwargs:All other keyword arguments are passed to ax.pcolormesh

    简单改改之后,虽然还是不好看,但至少说明可以改变!

    plt.subplots(figsize=(60,30))sns.heatmap(cov,yticklabels=False,xticklabels=1,cmap="Blues",center=True)plt.savefig('./BluesStateRelation.png')plt.show()

    6b7021afea2d168189b59bd769190625.png

    免责声明:部分图片及资料来源于网络,目的在于传递更多信息及分享,如涉及侵权,请联系我及时修改或删除。

    展开全文
  • 第十一章 中级绘图 本节用到的函数有: ...如果将散点图上的点从左往右连接起来,那么就会得到一个折线图。 创建散点图和折线图: > opar<-par(no.readonly=TRUE) > par(mfrow=c(1,...

    第十一章 中级绘图

    本节用到的函数有:

    plot

    legend

    corrgram

    mosaic

     

    11.2折线图

    如果将散点图上的点从左往右连接起来,那么就会得到一个折线图。

    创建散点图和折线图:

    > opar<-par(no.readonly=TRUE)
    > par(mfrow=c(1,2))
    > t1<-subset(Orange,Tree==1)
    > plot(t1$age,t1$circumference,xlab="Age(days)",ylab="circumference (mm)",main="orange tree 1growth")
    > plot(t1$age,t1$circumference,xlab="Age(days)",ylab="circumference (mm)",main="orange tree 1growth",type="b")
    > par(opar)

    参数type =的可选值

     

    p

    只有点

    l

    只有线

    o

    实心点和线(即线覆盖在点上)

    b、c

    线连接点(c时不绘制点)

    s、S

    阶梯线

    h

    直方图式的垂直线

    n

    不生成任何点和线(通常用来为后面的命令创建坐标轴)

    注意,plot()和lines()函数工作原理并不相同。plot()函数是被调用时即创建一幅新图,

    而lines()函数则是在已存在的图形上添加信息,并不能自己生成图形。因此,lines()函数通常是在plot()函数生成一幅图形后再被调用。如果对图形有要求,可以先通过plot()函数中的type = n来创建坐标轴、标题和其他图形特征,然后再使用lines()函数添加各种需要绘制的曲线。

    展示五种橘树随时间推移的生长状况的折线图:

    > opar<-par(no.readonly=TRUE)
    > par(mfrow=c(2,4))
    > t1<-subset(Orange,Tree==1)
    > plot(t1$age,t1$circumference,xlab="Age(days)",ylab="circumference(mm)",main="type=p",type="p")
    > plot(t1$age,t1$circumference,xlab="Age(days)",ylab="circumference(mm)",main="type=l",type="l")
    > plot(t1$age,t1$circumference,xlab="Age(days)",ylab="circumference(mm)",main="type=o",type="o")
    > plot(t1$age,t1$circumference,xlab="Age(days)",ylab="circumference(mm)",main="type=b",type="b")
    > plot(t1$age,t1$circumference,xlab="Age(days)",ylab="circumference(mm)",main="type=c",type="c")
    > plot(t1$age,t1$circumference,xlab="Age(days)",ylab="circumference(mm)",main="type=s",type="s")
    > plot(t1$age,t1$circumference,xlab="Age(days)",ylab="circumference(mm)",main="type=S",type="S")
    > plot(t1$age,t1$circumference,xlab="Age(days)",ylab="circumference(mm)",main="type=h",type="h")
    

      

    展示五种橘树随时间推移的生长状况的折线图

    > Orange$Tree<-as.numeric(Orange$Tree)
    > ntrees<-max(Orange$Tree)
    > xrange<-range(Orange$age)
    > yrange<-range(Orange$circumference)
    > plot(xrange,yrange,type="n",xlab="age(days)",ylab="circumference(mm)" )
    > colors<-rainbow(ntrees)
    > linetype<-c(1:ntrees)
    > plotchar<-seq(18,18+ntrees,1)
    > for(i in 1:ntrees){tree<-subset(Orange,Tree==i), lines(tree$age,tree$circumference, type="b", lwd=2, lty=linetype[i],col=colors[i], pch=plotchar[i] ) }
    > title("tree growth","example of lineplot")
    > legend(xrange[1],yrange[2], 1:ntrees, cex=.8, pch=plotchar, lty=linetype, title="tree")
    

      

    11.3 相关图

    利用corrgram包中的corrgram()函数,可以以图形方式展示该相关系数矩阵

    > library(corrgram)
    > corrgram(mtcars,order=TRUE,lower.panel=panel.shade,upper.panel=panel.pie,text.panel=panel.txt, main="correlogram of mtcarsintercorrelations")

    默认地,蓝色和从左下指向右上的斜杠表示单元格中的两个变量呈正相关。反过来,红色和从左上指向右下的斜杠表示变量呈负相关。色彩越深,饱和度越高,说明变量相关性越大。相关性接近于0的单元格基本无色。本图为了将有相似相关模式的变量聚集在一起,对矩阵的行和列都重新进行了排序(使用主成分法)。从图中含阴影的单元格中可以看到,gear、am、drat和mpg相互间呈正相关,wt、disp、hp和carb相互间也呈正相关。但第一组变量与第二组变量呈负相关。还可以看到carb和am、vs和gear、vs和am以及drat和qsec四组变量间的相关性很弱。上三角单元格用饼图展示了相同的信息。颜色的功能同上,但相关性大小由被填充的饼图块的大小来展示。正相关性将从12点钟处开始顺时针填充饼图,而负相关性则逆时针方向填充饼图。

    corrgram()函数的格式如下:

    corrgram(x, type=NULL, order = FALSE, labels,panel=panel.shade,
    lower.panel=panel,upper.panel=panel,diag.panel=NULL,text.panel=textPanel,label.pos=c(0.5, 0.5), label.srt=0, cex.labels=NULL,font.labels=1,row1attop=TRUE, dir="",gap=0,abs=FALSE,col.regions=colorRampPalette(c("red","salmon","white","royalblue","navy")),cor.method="pearson", ...)

    可以通过选项lower.panel 和upper.panel来分别设置主对角线下方和上方的元素类型。而text.panel和diag.panel选项控制着主对角线元素类型。

    在下三角区域使用平滑拟合曲线和置信椭圆,上三角区域使用散点图:

    > library(corrgram)
    > corrgram(mtcars,order=TRUE,lower.panel=panel.ellipse,upper.panel=panelNaNs,text.panel=panel.txt,lwd=1.5,diag.panel=panel.minmax,main="correlogram of mtcars using\nscatter plots and ellipse")

    mtcars数据框中变量的相关系数图。下三角区域包含平滑拟合曲线和置信椭圆,上三角区域包含散点图。主对角面板包含变量最小和最大值。矩阵的行和列利用主成分分析法进行了重排序

    > library(corrgram)
    > corrgram(mtcars,lower.panel=panel.shade,upper.panel=NULL,text.panel=panel.txt, lwd=1.5, main="Car mileage data(unsorted)")

    下三角区域使用了阴影,并保持原变量顺序不变,上三角区域留白。下三角区域的阴影代表相关系数的大小和正负。变量按初始顺序排列.

    11.4 马赛克图

    若只观察单个类别型变量,可以使用柱状图或者饼图;若存在两个类别型变量,可以使用三维柱状图;若有两个以上的类别型变量,一种办法是绘制马赛克图(mosaic plot)。在马赛克图中,嵌套矩形面积正比于单元格频率,其中该频率即多维列联表中的频率。颜色和/或阴影可表示拟合模型的残差值。vcd包中的mosaic()函数可以绘制马赛克图

    > ftable(Titanic)
    Survived No Yes
    Class Sex Age
    1st Male Child 0 5
    Adult 118 57
    FemaleChild 0 1
    Adult 4 140
    2nd Male Child 0 11
    Adult 154 14
    FemaleChild 0 13
    Adult 13 80
    3rd Male Child 35 13
    Adult 387 75
    FemaleChild 17 14
    Adult 89 76
    Crew Male Child 0 0
    Adult 670 192
    FemaleChild 0 0
    Adult 3 20

    mosaic()函数可按如下方式调用

    mosaic(table)

    其中table是数组形式的列联表。另外,也可用:

    > library(vcd)
    > mosaic(Titanic,shade=TRUE,legend=TRUE)

    > library(vcd)
    > mosaic(~Class+Sex+Age+Survived,data=Titanic,shade=TRUE,legend=TRUE)

    按船舱等级、乘客性别和年龄层绘制的泰坦尼克号幸存者的马赛克图

    展开全文
  • Canvas和Paint画折线

    千次阅读 2015-11-05 23:09:21
    Canvas和Paint实现简单的并且可扩展十分强的折线

    前言

    前在Devstore上传了一个折线图的小功能,有挺多人下载的,所以今天把它拿来给大家分享一下。

    正文

    网上有很多关于折线图之类的功能,有简单的、复杂的。但是有一些折线图不利于扩展,很难拿到自己的项目中去运用。我给大家介绍的简单、使用,并且利于扩展,先看看我最初做成的样子吧:
    这里写图片描述
    后来公司又有一个项目用到了,就把它拿来修改一下,感觉效果还不错:
    这里写图片描述
    还可以吧!

    这里主要用Canvas(画布)、Paint(画笔)、Color(颜色)、Bitmap(图像)这几种graphics中常用的类来实现,先来对它们进行讲解(这里我直接把从网上找了一下关于它们的讲解,感觉还不错就拿来了)。

    1.Color(颜色)类:
      Android系统中颜色的常用表示方法有以下3种:
      (1)int color = Color.BLUE;
      (2)int color = Color.argb(150,200,0,100);
      (3)在xml文件中定义颜色;
      在实际应用当中,我们常用的颜色有以下一些,其颜色常量及其表示的颜色如下所示:
      Color.BLACK 黑色 Color.GREEN 绿色
      Color.BLUE 蓝色 Color.LTGRAY 浅灰色
      Color.CYAN 青绿色 Color.MAGENTA 红紫色
      Color.DKGRAY 灰黑色 Color.RED 红色
      Color.YELLOW 黄色 Color.TRANSPARENT 透明
      Color.GRAY 灰色 Color.WHITE 白色
    2.Paint(画笔)类:
      要绘制图形,首先得调整画笔,按照自己的开发需要设置画笔的相关属性。Pain类的常用属性设置方法如下:
      setAntiAlias(); //设置画笔的锯齿效果
      setColor(); //设置画笔的颜色
      setARGB(); //设置画笔的A、R、G、B值
      setAlpha(); //设置画笔的Alpha值
      setTextSize(); //设置字体的尺寸
      setStyle(); //设置画笔的风格(空心或实心)
      setStrokeWidth(); //设置空心边框的宽度
      getColor(); //获取画笔的颜色
    3.Canvas(画布)类:
      画笔属性设置好之后,还需要将图像绘制到画布上。Canvas类可以用来实现各种图形的绘制工作,如绘制直线、矩形、圆等等。Canvas绘制常用图形的方法如下:
      绘制直线:canvas.drawLine(float startX, float startY, float stopX, float stopY, Paint paint);
      绘制矩形:canvas.drawRect(float left, float top, float right, float bottom, Paint paint);
      绘制圆形:canvas.drawCircle(float cx, float cy, float radius, Paint paint);
      绘制字符:canvas.drawText(String text, float x, float y, Paint paint);
      绘制图形:canvas.drawBirmap(Bitmap bitmap, float left, float top, Paint paint);
    4.折线图的实现:
    给大家讲的折线图的实现,分为两部分:
    1、画横线,添加纵坐标;
    2、根据坐标画出点,并划线连接每一个点;
    5.代码实现:
    这个功能的代码写的挺简单的,主要是三个类;一个主类(MainActivity),画纵坐标(ShiViews),画点和折线(ShiView);
    首先看看一下布局activity_main.xml:

     <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:orientation="vertical"
        android:background="@color/black" >
        <!-- 纵线布局 -->
        <LinearLayout 
          android:id="@+id/lays"
          android:layout_width="fill_parent"
          android:layout_height="wrap_content"
          android:orientation="horizontal"
          android:background="@null">
        </LinearLayout>
        <!-- 折线布局 -->
        <FrameLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content" 
            android:background="@null">
            <HorizontalScrollView 
               android:id="@+id/scrollview"
               android:layout_height="wrap_content"
               android:layout_width="fill_parent"
               android:scrollbars="none">
            <LinearLayout 
                android:id="@+id/lay"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                 android:orientation="horizontal">
            </LinearLayout>
        </HorizontalScrollView>
        </FrameLayout>
    </FrameLayout>

    MianActivity的主要代码:

        /** 画点和折线的类 */
        ShiView ssvv = new ShiView(context,temp,temps,time);
        LayoutParams lpp = new LayoutParams(1500, 600);
        ssvv.setLayoutParams(lpp);
        lay.addView(ssvv);
        /** 画纵坐标和横线 */
        ShiViews ssvvs = new ShiViews(context);
        LayoutParams lpps = new LayoutParams(1500, 600);
        ssvvs.setLayoutParams(lpps);
        lays.addView(ssvvs);

    ShiView类:
    ShiView继承于View类。然后,复写View类的onDraw()函数。在onDraw()函数中使用Paint和Canvas对象绘制我们需要的图形。
    这里就直接给大家上代码吧,因为相对来说没有复杂的逻辑并且代码中有相关注释:

    int[] temp = new int[7];
        int[] temps = new int[7];
        String[] dayTime = new String[7];
        private Context context;
        private Canvas canvass;
        private Paint paint;
        private Paint paints;
        public ShiView(Context context, int[] temp, int[] temps, String[] dayTime) {
            super(context);
            this.temp = temp;
            this.temps = temps;
            this.dayTime = dayTime;
            this.context = context;
        }
        public ShiView(Context context) {
            super(context);
        }
        public ShiView(Context context, AttributeSet attrs) {
            super(context, attrs);
    
        }
    
        @SuppressLint("DrawAllocation")
        @Override
        protected void onDraw(Canvas canvas) {
            // TODO Auto-generated method stub
            super.onDraw(canvas);
            canvass = canvas;
            paint = new Paint(); 
            paints = new Paint(); 
            /* 去锯齿 */ 
            paint.setAntiAlias(true); 
            paints.setAntiAlias(true); 
    
            //纵坐标
            paint.reset();
            paint.setColor(Color.WHITE);
            paint.setStyle(Paint.Style.FILL); 
            paint.setStrokeWidth(2); 
            paint.setTextSize(20); 
            //横坐标
            for(int i=0;i<7;i++){
                canvas.drawText(dayTime[i], i*200+100, 590, paint);
            }
            //画折线
            paint.reset();
            paint.setColor(Color.WHITE);
            paint.setStyle(Paint.Style.STROKE); 
            paint.setStrokeWidth(2); 
            paints.reset();
            paints.setColor(Color.RED);
            paints.setTextSize(25);
            paints.setStyle(Paint.Style.STROKE); 
            paints.setStrokeWidth(2); 
            Path path = new Path(); 
            Path paths = new Path(); 
            path.moveTo(115,  560-temp[0]*16);
            paths.moveTo(115,  560-temps[0]*16);
            for(int i=1;i<7;i++){
                path.lineTo(i*200+115,  560-temp[i]*16);
                paths.lineTo(i*200+115,  560-temps[i]*16);
            }
            canvas.drawPath(path, paint); 
            canvas.drawPath(paths, paint); 
            paint.reset();
            paint.setColor(Color.WHITE); 
            // 设置样式-填充 
            paint.setStyle(Style.FILL); 
            // 绘图 // 从资源文件中生成位图 
            for(int i=0;i<7;i++){
                int tempy = (int)temp[i];
                int tempsy = (int)temps[i];
                if((tempy - tempsy) < 4 && (tempy - tempsy) > 0){
                    canvas.drawText(temp[i]+"", i*200+105, 540-temp[i]*(float)16, paints);
                    canvas.drawText(temps[i]+"", i*200+105, 595-temps[i]*(float)16, paints);
                }else if((tempy - tempsy) > -4 && (tempy - tempsy) < 4 && (tempy - tempsy) < 0){
                    canvas.drawText(temp[i]+"", i*200+105, 595-temp[i]*(float)16, paints);
                    canvas.drawText(temps[i]+"", i*200+105, 540-temps[i]*(float)16, paints);
                }else{
                    canvas.drawText(temp[i]+"", i*200+105, 540-temp[i]*(float)16, paints);
                    canvas.drawText(temps[i]+"", i*200+105, 540-temps[i]*(float)16, paints);
                }
                canvas.drawCircle(i*200+115, 560-temp[i]*(float)16, 12, paint);
                canvas.drawCircle(i*200+115, 560-temps[i]*(float)16, 12, paint);
            }
        }
        /** 点击屏幕获得坐标判断点击位置 */
        @Override
        public boolean onTouchEvent(MotionEvent event) {
              float x = event.getX();   
              float y = event.getY();   
              for(int i=0;i<7;i++){
                  float tempx = i*200+115;
                  float tempys = 560-temps[i]*(float)16;
                  float tempy = 560-temp[i]*(float)16;
                  if(x >= (tempx-15)  && x <= (tempx+15) && y <= tempys+15 && y >= tempys-15){
                      canvass.drawCircle(i*200+115, 560-temps[i]*(float)16, 12, paint);
                      Toast.makeText(context,temps[i]+"", Toast.LENGTH_SHORT).show();
                      break;
                  }
                  if(x >= (tempx-15)  && x <= (tempx+15) && y <= tempy+15 && y >= tempy-15){
                      Toast.makeText(context,temp[i]+"", Toast.LENGTH_SHORT).show();
                      break;
                  }
              }
              return super.onTouchEvent(event);
        }

    ShiViews类的相关内容在ShiView这个类里面都有,也不进行讲解了;
    代码下载地址,有不懂得或者意见的可以相互沟通,晚安。

    展开全文
  • ggplot2折线

    2019-11-02 15:55:56
    library(ggplot2) #读入数 data= read.csv("E:/lcs/0...细胞平行/平均相关系数.csv") data$stage = factor(data$stage,levels = c("Zy","2C","8C","Mor","Blast")) Groups = factor(data$comparison) #添加字体...

    library(ggplot2)

    #读入数
    data= read.csv("E:/lcs/0.smart-seq2/0.data/3.细胞平行性/平均相关系数.csv")

    data$stage = factor(data$stage,levels = c("Zy","2C","8C","Mor","Blast"))
    Groups = factor(data$comparison)

    #添加字体

    windowsFonts(myFont1=windowsFont("Times New Roman"))
    #保存图片,设置大小,分辨率
    tiff(file="C:/Users/Administrator/Desktop/myplot.tiff", width=200, height=200,units='mm',res=500,compression='lzw')
    #画图
    ggplot(data, mapping = aes(x =data$stage,y = data$皮尔森相关系数, group=Groups, colour = Groups)) + geom_line(size=1.5)+ geom_point(size=4)+
      xlab("Stages")+ylab("Pearson correlation coefficient")+
      theme_classic()+
      theme(panel.grid=element_blank(),
            axis.title.x =element_text(size=20,family = "myFont1",color = "black",face = "bold"), axis.title.y=element_text(size=20,family = "myFont1",color = "black",face = "bold")
            ,axis.text.y=element_text(size=20,family = "myFont1",color = "black"),axis.text.x=element_text(size=20,family = "myFont1",color = "black"),
            legend.text = element_text(size=20,family = "myFont1",color = "black"),legend.title = element_text(size=20,family = "myFont1",color = "black",face = "bold"))
    dev.off()

    #进一步调主题
    library(ggThemeAssist)
    ggThemeAssistGadget(a)

    展开全文
  • 说起折线图,很多人都觉得非常简单,不就是一些点连成的线吗?用 Excel 几秒钟就能画出一张折线图。真的就这么简单吗?想一想:在普通的折线图中,如何自动地添加一条代表平均值的横线?如何添加一条带箭头的趋势线...
  • echarts 3D折线图应用

    千次阅读 2020-07-13 13:25:09
    公司最近做一个振动项目,需要展示振动曲线,考虑其直观,决定用3D折线图来做。 首先你要引入echarts的相关js,下图为我引入的例子,其中GL那个js是echarts控制3D的,你可根据自己需要去echarts官方网站上下载这俩...
  • WPF 柱状图报表饼图报表区域折线图报表横向柱状图报表折线图报表
  • 折线图——Line

    2020-11-10 11:07:28
    一个 类 类的构造方法中加 相应变量的 设置情况 yaxis_opts=opts.AxisOpts( min_=0.3, max_=0.45, splitline_opts=opts.SplitLineOpts(is_show=True), #设置是否出现 分割线 ) ) #全局的配置 #配置方法的结果作用...
  • Unity3D开发之折线图制作

    万次阅读 热门讨论 2017-05-25 15:56:22
    柱状图、折线图这个在数据可视化中会经常用到,可是unity自身并不带创建折线图功能。所以,需要我们自己去写。第一次遇到这个需求是在我刚参加工作时,当时实在没法子,只好选择做了柱状图,那时候柱状图还是用实例...
  • 皮尔逊(Pearson)相关系数可以度量两个数据集的相关关系,基本来说,皮尔逊相关系数可以解答这样的问题:能不能画折线图来表示数据。 皮尔逊相关系数公式 皮尔逊相关系数的计算公式有很多不同的等价形式。令x=(x1,x2,...
  • 皮尔逊相关系数 计算工具类,计算两条折线的相关性。 1为完全相关,-1为完全负相关,0为完全不相关 public class PearsonUtil { /** * 计算2个list的皮尔逊相关系数 * * @param x * @param y * @return */ ...
  • 安全异常值浏览器 概述 安全离群Explorer是使用Webcharts内置JavaScript库( , ),其允许用户查看的临床结果,如实验室结果和生命体征随着时间的推移以及识别落入预期范围之外的值。 单击点或线会为数据中的每个...
  • qt折线图显示数据

    万次阅读 热门讨论 2012-09-28 23:35:52
    前面也写了一个关于折线的,可是那个太...,暑假没事在家又弄了一个,希望它能够有一点可适应和扩展。    下面是代码实现   /************************************************* 折线图绘制 author ...
  • 实时数据的折线

    千次阅读 2018-06-20 17:05:47
    Android图表控件MPAndroidChart——曲线图LineChart(多条曲线)动态添加数据 ...相关文章: Android图表控件MPAndroidChart的简单介绍(MPAndroidChart3.0) Android图表控件MPAndroidChart——曲线图LineChar...
  • android 折线图,可伸缩滑动

    千次阅读 2018-06-14 11:09:04
    实现类如下,所有过程以及相关属性设置都有详细注释。   demo地址 https://download.csdn.net/download/qq_36355271/10478230 所以参数都可以按需修改,支持横竖屏缩放,滑动,字体是否斜体,线条平滑等 用到的...
  • 皮尔逊相关系数(Pearson Correlation Coefficient) 1.1 衡量两个值线性相关强度的量 1.2 取值范围 [-1, 1]: 正向相关: >0, 负向相关:<0, 无相关性:=0 R平方值: 4.1定义:决定系数,反应因变量...
  • (一)折线图小结 1、设置图片大小(想要一个高清无码大图) # 图大小 plt.figure(figsize=(20, 8), dpi=80)   2、保存到本地 # 设置图片大小 plt.figure(figsize=(20, 8), dpi=180) # 绘制图形,...
  • 手把手教你使用ggplot2绘制折线

    千次阅读 2016-01-17 12:21:00
    折线图同样是应用非常广泛的统计图之一,通过折线图可以反映某种现象的趋势。通常折线图的横坐标是为时间变量,纵坐标则是一般的数值型变量,当然,折线图也允许横坐标为离散型数值...
  • 2. 窗口大小变化时,重新绘制折线图,以适应新的大小,保证折线图一直以最好效果展现; 3. x轴的坐标尺度为时间,单位是月份,数据类型是数组,数组元素是字符串,格式类似"2016/12"这种,为了方便,假设x轴固定有12...
  • 来源:大数据DT本文约5400字,建议阅读10分钟本文为你介绍数据分析时经常用到的折线图,可以用来呈现哪些数据关系?在数据分析过程中可以解决哪些问题?怎样用Python绘制折线图?01 概述折线图(Line)是将排列在工作...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 13,709
精华内容 5,483
关键字:

折线相关系数