精华内容
下载资源
问答
  • python绘制聚类树状

    2021-02-07 13:26:08
    python绘制聚类树状 import pandas as pd import plotly.figure_factory as ff import chart_studio.plotly as py import chart_studio chart_studio.tools.set_credentials_file(username="用户名", api_key='...

    python绘制聚类树状图

    import pandas as pd
    import plotly.figure_factory as ff
    import chart_studio.plotly as py
    import chart_studio
    chart_studio.tools.set_credentials_file(username="用户名", api_key='秘钥')
    data = pd.read_excel('作图1.xlsx')
    X = data[["总分"]]
    fig = ff.create_dendrogram(X, orientation='bottom',labels=list(data["国家"]))
    fig['layout'].update({'width':800, 'height':800})
    py.iplot(fig, filename='dendrogram_with_labels')
    

    在这里插入图片描述注意
    需要先注册plotly生成密钥https://plot.ly/settings/api/
    之后才可以正常使用,生成的树状图保存到云端文件夹中
    欢迎加群:620139909
    在这里插入图片描述

    展开全文
  • R语言绘制二元聚类图

    千次阅读 2017-06-12 10:50:41
    之前使用k均值方法将数据划分到不同的簇中,但当变量个数大于2时,就无法在二维空间中展示数据聚类的过程,因此可以使用二元聚类图先将变量减少成两个主要成分,然后利用组件(诸如轴线和椭圆)来展示数据聚类的结果...

    说明

    之前使用k均值方法将数据划分到不同的簇中,但当变量个数大于2时,就无法在二维空间中展示数据聚类的过程,因此可以使用二元聚类图先将变量减少成两个主要成分,然后利用组件(诸如轴线和椭圆)来展示数据聚类的结果。

    操作

    载入包,绘制二元聚类图

    library("cluster")
    clusplot(customer,fit$cluster,color = TRUE,shade = TRUE)
    

    二元聚类图
    二元聚类图
    对二元聚类图进行标记并放大:

    par(mfrow = c(1,2))
    clusplot(customer,fit$cluster,color = TRUE,shade = TRUE)
    rect(-0.7,-1.7,2.2,-1.2,border = "orange",lwd = 2)
    clusplot(customer,fit$cluster,color = TRUE,xlim = c(-0.7,2.2),ylim =c(-1.7,-1.2))
    

    二元聚类图放大示意

    原理

    本节绘制了一个二元聚类图以展示数据聚类的过程,我们首先安装和导入cluster算法包,然后使用clusplot函数绘制customer数据集的二元聚类图,clusplot函数的shade和color参数值均被设置成TRUE,得到一个彩色且带边框的聚类。 在得到的结果图中,可以得知二元聚类使用了两个成分,x轴与y轴涵盖了85.01%的数据点,数据点根据成分1和成分2的取值散落在图中,同一簇内的数据点采用相同的颜色和形状绘制。
    我们还使用了rect函数来增加一个矩形框对给定x轴和y轴内的簇进行特别标注,然后调用clusplot函数,设置好xlim与ylim参数的值,将被选中的簇放大到显示以便不好的观测簇内数据点的特征。

    展开全文
  • Origin Pro绘制聚类分析树状

    千次阅读 2019-08-27 13:59:39
    一般来说,Origin Pro主要工作就是画图,官方本身是不支持聚类分析的,也就无法绘制聚类分析树状了。据说可以通过origin的App来实现,这一点由于种种原因没有验证过(访问不了官网,无法注册账号,你懂的)。需要...

    工作环境(蓝色粗体字为特别注意内容)
    1、软件环境:Windows 7 Ultimate sp1、MatlabR2012b 32bit、OriginPro 2018C.

    一般来说,Origin Pro主要工作就是画图,官方本身是不支持聚类分析的,也就无法绘制聚类分析树状图了。据说可以通过origin的App来实现,这一点由于种种原因没有验证过(访问不了官网,无法注册账号,你懂的)。需要的朋友可以点击这个链接:https://www.baidu.com/link?url=PKfRk6U4OH-drJ-01isa82DcNxIlnbe4srjQJZ6aLhtUJUjm3uwsaADoiIM9xQXjCegmLHegDUVpXaMYl59BdB1qVCVscNpoU268-S8gm8q&wd=&eqid=a40b818e0003b174000000065d64c146
    应该可以达到下面这种效果
     

    不过笔者尝试多次都无法打开该链接,网络原因?不得而知。 那是不是就无法使用Origin绘制聚类分析树状图了呢?答案是否定的。既然网络上没有相关资料可以参考,于是笔者只能自己动手了。。
    下面我们来看看一个巧妙的推断思路(PANG氏定理)
    1、要画图必须得有数据比如(x1,x2),(y1,y2)...这样,如果能够得到这样的点,那就可以将图像曲线绘制出来。
    2、Matlab可以绘制聚类分析树状图,具体操作可以参考我的上一篇文https://blog.csdn.net/pang9998/article/details/100097785
    比如像下面这样:

    3、根据推论1、2可以推断出上图中一定含有数据点(x1,x2),(y1,y2)....,那下面就好办了,将上图中的数据点抠出来,用Origin绘制出来不就完事了吗?这是一个巧妙的思路,好,下面来看看具体操作。

    Step1:用Matlab做聚类分析,并绘制出树状图;
    Step2:将树状图另存为*.fig文件;
    Step3:运行下面代码

    % 如果两条曲线都画在同一个axis里面
    % 画完图之后,运行这个,gcf就是当前fig的句柄
    open('fig/CLUST_TREE_Filter.fig');
     obj = get(gca,'children')
     X = [];
     Y = [];
     for i = 1:size(obj,1)
         X = [X;get(obj(i), 'XData')];
         Y = [Y;get(obj(i),'YData')];
     end
     X = X'
     Y = Y';
     m = size(X,1);
     %FIG_DAT = zeros(m,size(X,2)+size(Y,2));
     FIG_DAT = [];
     for i = 1:size(X,2)
         FIG_DAT = [FIG_DAT,X(:,i),Y(:,i)];
     end

    将FIG_DAT复制到Origin中,需要做一下设置即:将x轴数据标记出来。全选X轴数据(FIG_DAT数据格式:x,y,x,y....),

    然后点击属性,选择x轴

    Step4:选中数据,绘制曲线图,效果如下图,漂亮的不要不要的,完美收工!

    总结:按照以上思路,其实不仅仅是树状图,理论上说,只要是Matlab能够绘制出来的图,必定包含(x,y)数据对,也就必定可以用Origin绘制出来(PANG氏定理)

    喜欢的朋友点个赞,爱学习,爱分享,一起学习,一起进步。我是Pang9998.

    展开全文
  • R语言数据可视化_科学统计图表3——ggplot绘制层次聚类图 层次聚类图相信大家都很了解了,但是我们往往只能够画一个十分朴素的层次聚类图,像这样的… 或许我们可以在这张图上稍作修改,但也仅限于在某个高度加条...

    R语言数据可视化_科学统计图表3——ggplot绘制层次聚类图


    层次聚类图相信大家都很了解了,但是我们往往只能够画一个十分朴素的层次聚类图,像这样的…
    在这里插入图片描述
    或许我们可以在这张图上稍作修改,但也仅限于在某个高度加条红线,这就造成了读图的困难。这个问题之所以困扰我们,是因为并不是所有的绘图函数都如ggplot一样充满艺术性且有非常多的受众(便于我们查找和学习)。就算某个根据ggplot开发的包能够绘制层次聚类图,它也不像ggplot那样能够任由我们天马行空的想象对图自由地进行修改。

    所以我(趾高气昂),今天!用ggplot写了个层次聚类,为广大学子带来了福音(掌声)!我并没有打算把它封装成一个包或函数,因为这样做相当于抛弃了ggplot的自由性和艺术性,所以本片文章我会从数据开始,一步步的解释我的代码。

    library("factoextra")
    
    data(USArrests)
    #这次所用的数据
    
    df <- scale(USArrests)
    #标准化一下
    
    result <- dist(df, method = "euclidean")
    result_hc <- hclust(d = result, method = "ward.D2")
    #获得层次聚类的结果result_hc
    
    fviz_dend(result_hc, cex = 0.6)
    #画个层次聚类图看看
    

    然后我们用ggplot重写下
    我的绘制思想是利用geom_line画出图中的每一个杠(如下图),每一个杠由四个点顺序链接所构成,所以代码主要就是在找每个杠对应的四个点,并用group将他们分开。
    在这里插入图片描述

    
    len = dim(USArrests)[1]
    #这里定义了数据的数量
    
    #######################################################
    ################危      从这里开始      危####################
    #######################################################
    
    ranks = c(1:(2*len-1))
    
    for (i in c(1:len)) {
      ranks[i] = which(result_hc$order==i)
    }
    
    ranks[(len+1):(len+2)] = 0
    
    for (i in 1:(len-1)) {
      rank1 = 0
      rank2 = 0
      
      if(result_hc$merge[i,1]<0)
      {
        rank1 = ranks[-result_hc$merge[i,1]]
      }else{
        rank1 = ranks[result_hc$merge[i,1]+len]
      }
      
      if(result_hc$merge[i,2]<0)
      {
        rank2 = ranks[-result_hc$merge[i,2]]
      }else{
        rank2 = ranks[result_hc$merge[i,2]+len]
      }
        
      ranks[i+len] = (rank1 + rank2)/2
      
    }
    
    
    ranks
    
    x = c(1:4*(len-1))
    y = c(1:4*(len-1))
    
    heigh = c(1:(2*len -1))
    heigh[1:len] = 0
    heigh[(len+1):(2*len -1)] = result_hc$height
    
    merge_ = result_hc$merge
    
    for (i in 1:(2*(len-1))) {
      if(result_hc$merge[i]>0)
      {
        merge_[i] = result_hc$merge[i]+len
      }else{
        merge_[i] = -result_hc$merge[i]
      }
    }
    
    
    
    for (i in 1:(len-1)) {
      index = (i-1)*4 + 1
      x[index] = ranks[merge_[i,1]]  
      y[index] = heigh[merge_[i,1]]
      
      x[index+1] = ranks[merge_[i,1]]  
      y[index+1] =   result_hc$height[i]
      
      x[index+2] = ranks[merge_[i,2]]  
      y[index+2] =   result_hc$height[i]
      
      x[index+3] = ranks[merge_[i,2]]  
      y[index+3] =   heigh[merge_[i,2]]  
      
    }
    
    #######################################################
    ################危      到这里结束      危####################
    #######################################################
    #都不用看!
    #复制粘贴就可以
    
    ########################################################
    data = data.frame(x=x,y=y,group = rep(1:(len-1),each=4))
    #这个data是绘制图像所用数据,也是上面那段代码的全部成果
    
    
    ggplot(data,aes(x=x,y=y,group=group ))+geom_line()
    #绘制完成~
    

    在这里插入图片描述
    看下data
    在这里插入图片描述
    在这里插入图片描述

    这里group由低到高分别对应了聚类分析的每次聚类结果,比如说最大的组——group49就对应了图中最高的那个杠…
    在这里插入图片描述
    好嘞,看下ggplot能实现什么样的想法吧!
    在这里插入图片描述
    在这里插入图片描述
    聚类图主要的作用就是聚类并挑选分组,这里设定了三个组,并用了一个Facebook风格的主题。其他应用例如挑选离群点,也可以用同样的方法展示。

    有哪里不懂的小伙伴可以私信或评论,另外本人也提供一些科学图表的有偿绘制服务哦~
    价格实惠呢亲!

    在这里插入图片描述

    展开全文
  • R中绘制聚类的离散

    2018-09-09 11:08:00
    R中利用cluster简单的绘制常见聚类离散 # 引入cluster库(clara、fanny) library(cluster) # 聚类散点图绘制 # 引入factoextra,cluster库(fviz_cluster) library(ggplot2) library(factoextra) # ...
  • Matlab绘制聚类分析树状

    千次阅读 2019-08-27 13:31:48
    在使用Matlab做聚类分析的时候一般这样用: Y = pdist(X); Z = linkage(Y,'single'); dendrogram(Z); 这样调用dendrogram就能够自动生成树状,默认显示30个节点的树状,像下面这样 如果...
  • ] # # #5个簇,1个自由点 # mod = KMeans(n_clusters=5, random_state=1) ##用训练器数据X拟合分类器模型并对训练器数据X进行预测 # y_pre = mod.fit_predict(x) # # #打印聚类的结果 # r1 = pd.Series(mod.labels_)...
  • Matlab绘制聚类分析树状节点太少

    千次阅读 2019-12-02 20:05:22
    聚类树形上显示(注意是显示出来的)的最底层称为叶节点,当观测数目不太多时,聚类树形能显示所有观测,此时叶节点就是各个观测;当观测过多时,聚类树形无法显示所有观测点,也就是说某些细节会被掩盖,...
  • R语言实现K-mean聚类并画出聚类图(非调用package)
  • 聚类热图可以简单理解为:使用距离算法将距离相近...1、成品聚类热图(clustermap)展示2、绘图数据集准备3、 seaborn.clustermap绘制聚类热图(clustermap)3.0 聚类热图函数seaborn.clustermap语法3.1 默认参数绘图...
  • 使用聚类算法 对图像量化 图像量化 将图像 0-255 变成设定的值类型种类 """ import numpy as np import cv2 import sklearn.cluster as sc import matplotlib.pyplot as mp # 加载图片 original = cv2.imread("./...
  • 最近在看一篇论文,论文题目是《基于时间序列聚类的主题发现与演化分析研究》,其基本思路是根据论文中关键词的共现次数以及每一个关键词总的出现次数,计算关键词矩阵的Ochiia 系数。使用的公式为: 然后将...
  • 已知距离矩阵,R语言画聚类图

    千次阅读 2020-05-07 17:19:52
    查了网上不少资料,都是随机生成样本点,然后计算距离矩阵,最后再画出聚类图。 但我现在已知距离矩阵,怎么画聚类图呢?(此处采用最短距离(single)) R语言代码: x <- matrix(c(0, 11,12,13,10,15,14,11, 0,...
  • 本文主要讲述以下几点: 1.通过scikit-learn计算文本内容的tfidf并构造N*M矩阵(N个文档 M个特征词); 2.调用scikit-learn中的K-means进行文本聚类; 3.... 4.最后调用Matplotlib显示聚类效果
  • 实验目的 ...利用ArcEngine接口,计算点之间的距离,生成距离矩阵,并利用Clustering类进行距离聚类,生成聚类图,并在PictureBox的canvas中绘制聚类图,然后根据用户自定义的距离,对点进行距离...
  • R语言绘制聚类树示例层次聚类(hierarchical clustering)常见两种形式,“自底向上”的聚合策略(层次聚合)或“自顶向下”的分拆策略(层次分划),结果一般以聚类树表示,它表示将对象或聚类群连接在一起的层次结构。...
  • sklearn的make_blobs绘制聚类数据样本,Python 例如: from sklearn.datasets import make_blobs from matplotlib import pyplot def printer(data, label): size = len(data) d = [data[i] for i in range...
  • KMeans聚类图明晰画法

    千次阅读 2017-05-16 15:03:13
    import os import scipy as sp import numpy as np from scipy.stats import norm from matplotlib import pylab from sklearn.cluster import KMeans xw1 = norm(loc=0.3, scale=.15).rvs(20) ...
  • 绘制聚簇中心 kmeans = KMeans(n_clusters=3 ) kmeans.fit(blobs) print (kmeans.cluster_centers_) f, ax = plt.subplots(figsize=(7, 5 )) colors = [ ' r ' , ' g ' , ' b ' ] for i in range(3 ): p...
  • 大家好,有朋友在后台问如何用 R 绘制聚类热图,其实绘制聚类图的方法有很多,比如 MeV 软件等等,我们今天看如何用 R 来绘制聚类图。首先我们看原始数据,原始数据有两组,每组 4 个样品,共八个样品,每个样品有 ...
  • 至于类直径是对的,聚类图也没有出现,求指教? 如下: 现在把胡良平教授的教材《面向问题的统计学3》中的范例奉上,仅供参考。 本例一个分类指标,多个分类指标也是可以的。 Data mxwttjxt10_1; input x@@; cards; ...
  • 使用Gaia数据绘制开放聚类的一些。 如trawl_vizier.py ,使用Selenium从VizieR数据库中trawl_vizier.py 。 这些图像经过了一些基本转换,以便在fix_images.py文件中更好地理解。 现在分析了1229个群集,这里我们...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 18,864
精华内容 7,545
关键字:

如何绘制聚类图