精华内容
下载资源
问答
  • 平行坐标图python
    2020-12-09 14:44:21

    使用传统的图形类型可以相对直观地查看二维和三维数据。即使有四维数据,我们经常可以找到一种显示数据的方法。然而,尺寸超过四个,变得越来越难以显示。幸运的是,

    parallel coordinates plots提供了一种查看更高维度结果的机制。

    几个绘图包提供了平行坐标图,例如Matlab,R,VTK type 1和VTK type 2,但我不知道如何使用Matplotlib创建一个。

    >在Matplotlib中是否有内置的平行坐标图?我当然没有看到一个in the gallery。

    >如果没有内置类型,是否可以使用Matplotlib的标准特性构建并行坐标图?

    编辑:

    基于以下Zhenya提供的答案,我开发了支持任意数量轴的以下概括。根据我在上面原始问题中张贴的示例的绘图样式,每个轴都有自己的比例。我通过在每个轴点归一化数据并使轴具有0到1的范围来实现这一点。然后返回并对每个刻度标记应用标签,在截距处给出正确的值。

    该函数通过接受可迭代的数据集来工作。每个数据集被认为是一组点,其中每个点位于不同的轴上。 __main__中的示例在两组30行中为每个轴获取随机数。线在引起线的聚集的范围内是随机的;我想验证一个行为。

    这个解决方案不如内置解决方案好,因为你有奇怪的鼠标行为,我通过标签伪造数据范围,但直到Matplotlib添加了一个内置的解决方案,这是可以接受的。

    #!/usr/bin/python

    import matplotlib.pyplot as plt

    import matplotlib.ticker as ticker

    def parallel_coordinates(data_sets, style=None):

    dims = len(data_sets[0])

    x = range(dims)

    fig, axes = plt.subplots(1, dims-1, sharey=False)

    if style is None:

    style = ['r-']*len(data_sets)

    # Calculate the limits on the data

    min_max_range = list()

    for m in zip(*data_sets):

    mn = min(m)

    mx = max(m)

    if mn == mx:

    mn -= 0.5

    mx = mn + 1.

    r = float(mx - mn)

    min_max_range.append((mn, mx, r))

    # Normalize the data sets

    norm_data_sets = list()

    for ds in data_sets:

    nds = [(value - min_max_range[dimension][0]) /

    min_max_range[dimension][2]

    for dimension,value in enumerate(ds)]

    norm_data_sets.append(nds)

    data_sets = norm_data_sets

    # Plot the datasets on all the subplots

    for i, ax in enumerate(axes):

    for dsi, d in enumerate(data_sets):

    ax.plot(x, d, style[dsi])

    ax.set_xlim([x[i], x[i+1]])

    # Set the x axis ticks

    for dimension, (axx,xx) in enumerate(zip(axes, x[:-1])):

    axx.xaxis.set_major_locator(ticker.FixedLocator([xx]))

    ticks = len(axx.get_yticklabels())

    labels = list()

    step = min_max_range[dimension][2] / (ticks - 1)

    mn = min_max_range[dimension][0]

    for i in xrange(ticks):

    v = mn + i*step

    labels.append('%4.2f' % v)

    axx.set_yticklabels(labels)

    # Move the final axis' ticks to the right-hand side

    axx = plt.twinx(axes[-1])

    dimension += 1

    axx.xaxis.set_major_locator(ticker.FixedLocator([x[-2], x[-1]]))

    ticks = len(axx.get_yticklabels())

    step = min_max_range[dimension][2] / (ticks - 1)

    mn = min_max_range[dimension][0]

    labels = ['%4.2f' % (mn + i*step) for i in xrange(ticks)]

    axx.set_yticklabels(labels)

    # Stack the subplots

    plt.subplots_adjust(wspace=0)

    return plt

    if __name__ == '__main__':

    import random

    base = [0, 0, 5, 5, 0]

    scale = [1.5, 2., 1.0, 2., 2.]

    data = [[base[x] + random.uniform(0., 1.)*scale[x]

    for x in xrange(5)] for y in xrange(30)]

    colors = ['r'] * 30

    base = [3, 6, 0, 1, 3]

    scale = [1.5, 2., 2.5, 2., 2.]

    data.extend([[base[x] + random.uniform(0., 1.)*scale[x]

    for x in xrange(5)] for y in xrange(30)])

    colors.extend(['b'] * 30)

    parallel_coordinates(data, style=colors).show()

    编辑2:

    这里是一个例子,上面的代码,当绘制Fisher’s Iris data出来了。它不像维基百科的参考图像一样好,但如果所有你都是Matplotlib,你需要多维的地块,它是可行的。

    更多相关内容
  • 平行坐标图简介 当数据的维度超过三维时,此时数据的可视化就变得不再那么简单。为解决高维数据的可视化问题,我们可以使用平行坐标图。以下关于平行坐标图的解释引自百度百科:为了克服传统的笛卡尔直角坐标系容易...
  • 怎么用python实现一个坐标图的平移和缩放最...有什么可视化工具可以实现多维数据的平行坐标图平行坐标图是信息可视化的一种重要技术。为了克服传统的笛卡尔直角坐标系容易耗尽空间、难以表达三维以上数据的问题...

    怎么用python实现一个坐标图的平移和缩放最容易想到的应该是DP算法,即取初始轨迹的起点A和终点B连线,计算每个点到这条线的距离,距离最大的点C若小于要分享误差则结束; 否则将C点加入压缩后的数据集,对AC和CB重复以上过程直至满足误差要分享。

    有什么可视化工具可以实现多维数据的平行坐标图?

    平行坐标图是信息可视化的一种重要技术。为了克服传统的笛卡尔直角坐标系容易耗尽空间、难以表达三维以上数据的问题,平行坐标图将高维数据的各个变量用一系列相互平行的坐标轴表示,变量值对应轴上位置。为了反映变化趋势和各个变量间相互关系生亦惑,死亦惑,人非草木孰无情,不如不遇倾城色。

    4184175774e7c9fc8e8361ee5b8f9299.png

    如何在可视化工具中制作平行坐标图不要用你仅存的那点个性来挑战小编的脾气,因为你还不够资格!

    一、添加“平行坐标图” (1)选择添加自定义图表 (2)在图库中选择分布图平行坐标图立即添加前面的路好黑,你去前面探探路,但记的一定要回来!

    用python 语言 从键盘输入两点坐标(x1,y1)并计算欧式距离python实现代码: import numpy as np x=np.random.random(10) y=np.random.random(10) #方法一:根据公式分享解 d1=np.sqrt(np.sum(np.square(x-y))) #方法二:根据scipy库分享解 from scipy.spatial.distance import pdist X=np.vstack([x摇曳在笔尖的舞姿,是聚光灯下最浓烈的一抹艳红。

    分享问怎样用python话函数的XY坐标图

    有的,先看看效果吧 一、添加“平行坐标图” (1)选择添加自定义图表 (2)在图库中选择分布图平行坐标图立即添加 二、制作平行坐标图 (1)返回添加图表界面,选择工作表及平行坐标图 (2)拖拽维度及数值字段并运行 (3)可视化展示 这个工小编仍然喜欢你,只是,再也不期待关于你的一切了。

    python中使用plt.bar画出的图横坐标是1-10的,小编如import matplotlib.pyplot as plt class my_charts: def drawX_Y(temp):最简单的柱状代码应该是这样的 # coding: utf-8 import matplotlib.pyplot as plt import numpy as np x = np.random.randint(0, 10, size=10) y = np.random.randint(100, 1000, size=10) plt.bar(x, y) plt.show()小编们,不需要去羡慕别人所拥有的幸福。你以为你没有的,可能在来的路上;你以为她拥有的,可能在去的途中。

    编写 python ,绘制以原点为中心,边平行于坐标轴的编写 python ,绘制以原点为中心,边平行于坐标轴的正方形,分享问怎么做?侯营长有个桔皮大鼻子,鼻子上附带一张脸,脸上应有尽有,并未给鼻子挤去眉眼,鼻尖生几个酒刺,像未熟的草莓,高声说笑,一望而知是位豪杰。

    public void sort(int []array, int len){ int i,j,temp; for (i=1;i=0 && array[j]>temp){ array[j+1] = array[j]; j; } array[j+1] = temp; }你认识小编时,小编不认识你,你喜欢小编时,小编认识你,你爱上小编时,小编喜欢你,你离开小编时,小编爱上你。

    使用matlab做平行坐标图小编走一程,期许一程,回望一程,落空一程。目之所及没有他,翻山越岭也没有他,可他分明就在这世上,更在小编的心尖。

    小编有excel数据,多维的,想使用matlab弄成平行坐标的形式,就大概这种慢热在小编这里不太管用,合不来的话怎么熟悉都热不起来,合得来很快就热了。

    matlab导入数据以后直接用parallelplot就完事了有没有某一时刻,想念一个人突然眼泪流到鼻尖会酸酸的感觉

    如何用python实现百度地图墨卡托坐标跟经纬度坐标互转

    麦哲伦机器: 系统设置 地图单位 自定义坐标系 横向墨卡托 原点纬度0 原点经度126(通化) 比例因子1 通用迷单位1 原点向东偏移500000 原点向北偏移0 完成 系统设置 地图单位 参考椭球 用户 DA-108 DF0.0000005 DX1 DY-129 DZ-48 X旋转0 Y旋转0 Z人活在世,图的就是一个快乐,没有了快乐还谈什么在乎

    展开全文
  • Python实现平行坐标图的两种方式

    万次阅读 2018-05-25 17:32:51
    平行坐标图,一种数据可视化的方式。以多个垂直平行的坐标轴表示多个维度,以维度上的刻度表示在该属性上对应值,相连而得的一个折线表示一个样本,以不同颜色区分类别。 但是很可惜,才疏学浅,没办法在Python里...

           平行坐标图,一种数据可视化的方式。以多个垂直平行的坐标轴表示多个维度,以维度上的刻度表示在该属性上对应值,相连而得的一个折线表示一个样本,以不同颜色区分类别。

           但是很可惜,才疏学浅,没办法在Python里实现不同颜色来区分不同的类别。如果对此比较在意的大神可以不要往下看了。。。。。。。。。


                   

           上图是一个基于iris数据集所画的一个平行坐标图。

    隔开隔开.........................................................................................................................................................................................................隔开隔开

           不多扯了,下面正式上代码

    方法一、基于pyecharts第三方包来实现

    from pyecharts import Parallel
    import matplotlib.pyplot as plt
    import pandas as pd
    import numpy as np
    
    data = pd.read_csv('iris.csv')
    data_1 = np.array(data[['Sepal_length', 'Sepal_width', 'Petal_length', 'Petal_width']]).tolist()
    
    schema = ['Sepal_length', 'Sepal_width', 'Petal_length', 'Petal_width']
    
    parallel = Parallel('iris平行坐标图')
    parallel.config(schema)
    parallel.add('dasfd',data_1,is_random = True)
    parallel

           可惜,这样子run出来的恰好结果就是上图,没办法实现不同类别用不同颜色来区分。实在不得不说是一个令人超级不爽的一个地方,劳资都想咋了电脑当时,哈哈哈哈。。。

           在这里多扯两句啊,pyecharts这个包还真的是特么的好用啊,各种图都能实现,感兴趣的朋友不妨装个来耍耍得意


    方法二、基于pandas来实现

           what?pandas?这把绝世好剑不是用来处理一些数据的吗?什么时候还具有画图的功能了,lz你没猫饼吧?

           说实话,lz当时也没想到pandas能用来画图,而且是画平行坐标图。下面就是代码了:

    import matplotlib.pyplot as plt
    import pandas as pd
    from pandas.tools.plotting import parallel_coordinates
    
    data = pd.read_csv('iris.csv')
    data_1 =data[['Species','Sepal_length', 'Sepal_width', 'Petal_length', 'Petal_width']]
    
    parallel_coordinates(data_1,'Species')
    plt.legend(loc='upper center', bbox_to_anchor=(0.5,-0.1),ncol=3,fancybox=True,shadow=True)
    plt.show()

          run一下,就可以得到下图了

                                           

           不难看出,这张图是具有了不同颜色,但是每个坐标轴的刻度都是0-8啊,lz希望的是每个轴独立的啊·········

           以上就是我探讨在Python里如何实现平行坐标图所得到的一些结果吧。两种方式都没办法很完美的实现我们的需求(轴独立、颜色区别)。正所谓活到老,学到老。各位大神如果有可以实现的方式,可以教教小弟,小弟不胜感激!


           虽然lz没办法在Python里画出满意的平行坐标图,但是最后也用Echarts实现了一下(哈哈,有时候没办法了,不妨试试换个工具)

           

           顺道附上代码吧,不然担心被人画小圈圈诅咒闭嘴

           

    // Schema:
    // date,AQIindex,PM2.5,PM10,CO,NO2,SO2
    var data1 = [[5.1, 3.5, 1.4, 0.2], [4.9, 3.0, 1.4, 0.2], [4.7, 3.2, 1.3, 0.2], [4.6, 3.1, 1.5, 0.2], [5.0, 3.6, 1.4, 0.2], [5.4, 3.9, 1.7, 0.4], [4.6, 3.4, 1.4, 0.3], [5.0, 3.4, 1.5, 0.2], [4.4, 2.9, 1.4, 0.2], [4.9, 3.1, 1.5, 0.1], [5.4, 3.7, 1.5, 0.2], [4.8, 3.4, 1.6, 0.2], [4.8, 3.0, 1.4, 0.1], [4.3, 3.0, 1.1, 0.1], [5.8, 4.0, 1.2, 0.2], [5.7, 4.4, 1.5, 0.4], [5.4, 3.9, 1.3, 0.4], [5.1, 3.5, 1.4, 0.3], [5.7, 3.8, 1.7, 0.3], [5.1, 3.8, 1.5, 0.3], [5.4, 3.4, 1.7, 0.2], [5.1, 3.7, 1.5, 0.4], [4.6, 3.6, 1.0, 0.2], [5.1, 3.3, 1.7, 0.5], [4.8, 3.4, 1.9, 0.2], [5.0, 3.0, 1.6, 0.2], [5.0, 3.4, 1.6, 0.4], [5.2, 3.5, 1.5, 0.2], [5.2, 3.4, 1.4, 0.2], [4.7, 3.2, 1.6, 0.2], [4.8, 3.1, 1.6, 0.2], [5.4, 3.4, 1.5, 0.4], [5.2, 4.1, 1.5, 0.1], [5.5, 4.2, 1.4, 0.2], [4.9, 3.1, 1.5, 0.1], [5.0, 3.2, 1.2, 0.2], [5.5, 3.5, 1.3, 0.2], [4.9, 3.1, 1.5, 0.1], [4.4, 3.0, 1.3, 0.2], [5.1, 3.4, 1.5, 0.2], [5.0, 3.5, 1.3, 0.3], [4.5, 2.3, 1.3, 0.3], [4.4, 3.2, 1.3, 0.2], [5.0, 3.5, 1.6, 0.6], [5.1, 3.8, 1.9, 0.4], [4.8, 3.0, 1.4, 0.3], [5.1, 3.8, 1.6, 0.2], [4.6, 3.2, 1.4, 0.2], [5.3, 3.7, 1.5, 0.2], [5.0, 3.3, 1.4, 0.2]
    ];
    var data2 = [[7.0, 3.2, 4.7, 1.4], [6.4, 3.2, 4.5, 1.5], [6.9, 3.1, 4.9, 1.5], [5.5, 2.3, 4.0, 1.3], [6.5, 2.8, 4.6, 1.5], [5.7, 2.8, 4.5, 1.3], [6.3, 3.3, 4.7, 1.6], [4.9, 2.4, 3.3, 1.0], [6.6, 2.9, 4.6, 1.3], [5.2, 2.7, 3.9, 1.4], [5.0, 2.0, 3.5, 1.0], [5.9, 3.0, 4.2, 1.5], [6.0, 2.2, 4.0, 1.0], [6.1, 2.9, 4.7, 1.4], [5.6, 2.9, 3.6, 1.3], [6.7, 3.1, 4.4, 1.4], [5.6, 3.0, 4.5, 1.5], [5.8, 2.7, 4.1, 1.0], [6.2, 2.2, 4.5, 1.5], [5.6, 2.5, 3.9, 1.1], [5.9, 3.2, 4.8, 1.8], [6.1, 2.8, 4.0, 1.3], [6.3, 2.5, 4.9, 1.5], [6.1, 2.8, 4.7, 1.2], [6.4, 2.9, 4.3, 1.3], [6.6, 3.0, 4.4, 1.4], [6.8, 2.8, 4.8, 1.4], [6.7, 3.0, 5.0, 1.7], [6.0, 2.9, 4.5, 1.5], [5.7, 2.6, 3.5, 1.0], [5.5, 2.4, 3.8, 1.1], [5.5, 2.4, 3.7, 1.0], [5.8, 2.7, 3.9, 1.2], [6.0, 2.7, 5.1, 1.6], [5.4, 3.0, 4.5, 1.5], [6.0, 3.4, 4.5, 1.6], [6.7, 3.1, 4.7, 1.5], [6.3, 2.3, 4.4, 1.3], [5.6, 3.0, 4.1, 1.3], [5.5, 2.5, 4.0, 1.3], [5.5, 2.6, 4.4, 1.2], [6.1, 3.0, 4.6, 1.4], [5.8, 2.6, 4.0, 1.2], [5.0, 2.3, 3.3, 1.0], [5.6, 2.7, 4.2, 1.3], [5.7, 3.0, 4.2, 1.2], [5.7, 2.9, 4.2, 1.3], [6.2, 2.9, 4.3, 1.3], [5.1, 2.5, 3.0, 1.1], [5.7, 2.8, 4.1, 1.3]
    ];
    var data3 = [[6.3, 3.3, 6.0, 2.5], [5.8, 2.7, 5.1, 1.9], [7.1, 3.0, 5.9, 2.1], [6.3, 2.9, 5.6, 1.8], [6.5, 3.0, 5.8, 2.2], [7.6, 3.0, 6.6, 2.1], [4.9, 2.5, 4.5, 1.7], [7.3, 2.9, 6.3, 1.8], [6.7, 2.5, 5.8, 1.8], [7.2, 3.6, 6.1, 2.5], [6.5, 3.2, 5.1, 2.0], [6.4, 2.7, 5.3, 1.9], [6.8, 3.0, 5.5, 2.1], [5.7, 2.5, 5.0, 2.0], [5.8, 2.8, 5.1, 2.4], [6.4, 3.2, 5.3, 2.3], [6.5, 3.0, 5.5, 1.8], [7.7, 3.8, 6.7, 2.2], [7.7, 2.6, 6.9, 2.3], [6.0, 2.2, 5.0, 1.5], [6.9, 3.2, 5.7, 2.3], [5.6, 2.8, 4.9, 2.0], [7.7, 2.8, 6.7, 2.0], [6.3, 2.7, 4.9, 1.8], [6.7, 3.3, 5.7, 2.1], [7.2, 3.2, 6.0, 1.8], [6.2, 2.8, 4.8, 1.8], [6.1, 3.0, 4.9, 1.8], [6.4, 2.8, 5.6, 2.1], [7.2, 3.0, 5.8, 1.6], [7.4, 2.8, 6.1, 1.9], [7.9, 3.8, 6.4, 2.0], [6.4, 2.8, 5.6, 2.2], [6.3, 2.8, 5.1, 1.5], [6.1, 2.6, 5.6, 1.4], [7.7, 3.0, 6.1, 2.3], [6.3, 3.4, 5.6, 2.4], [6.4, 3.1, 5.5, 1.8], [6.0, 3.0, 4.8, 1.8], [6.9, 3.1, 5.4, 2.1], [6.7, 3.1, 5.6, 2.4], [6.9, 3.1, 5.1, 2.3], [5.8, 2.7, 5.1, 1.9], [6.8, 3.2, 5.9, 2.3], [6.7, 3.3, 5.7, 2.5], [6.7, 3.0, 5.2, 2.3], [6.3, 2.5, 5.0, 1.9], [6.5, 3.0, 5.2, 2.0], [6.2, 3.4, 5.4, 2.3], [5.9, 3.0, 5.1, 1.8]
    ];
    var schema = [
        {name: 'Sepal_length', index: 0, text: 'Sepal_length'},
        {name: 'Sepal_width', index: 1, text: 'Sepal_width'},
        {name: 'Petal_length', index: 2, text: 'Petal_length'},
        {name: 'Petal_width', index: 3, text: 'Petal_width'},
    ];
    
    var lineStyle = {
        normal: {
            width: 1,
            opacity: 0.5
        }
    };
    
    option = {
        legend: {
            top: 0,
            data:['Iris-setosa','Iris-versicolor','Iris-virginica'],
            itemGap: 10
        },
        parallelAxis: [
            {dim: 0, name: schema[0].text},
            {dim: 1, name: schema[1].text},
            {dim: 2, name: schema[2].text},
        ],
        parallel: {
            left: '5%',
            right: '13%',
            bottom: '10%',
            top: '15%',
            parallelAxisDefault: {
                type: 'value',
                name: '平行坐标',
                nameLocation: 'end',
                nameGap: 20,
                nameTextStyle: {
                    fontSize: 12
                }
            }
        },
        series: [
            {
                name: 'Iris-setosa',
                type: 'parallel',
                lineStyle: lineStyle,
                data: data1
            },
            {
                name: 'Iris-versicolor',
                type: 'parallel',
                lineStyle: lineStyle,
                data: data2
            },
            {
                name: 'Iris-virginica',
                type: 'parallel',
                lineStyle: lineStyle,
                data: data3
            },
        ]    
    };

           打完收工,各位小兄dei,快点点赞啊,不然我胖虎用小拳拳锤死在座的各位,记住是全部。。。。。

    展开全文
  • Python实现平行坐标图的绘制(plotly)

    千次阅读 2019-01-30 15:14:25
    平行坐标图简介  当数据的维度超过三维时,此时数据的可视化就变得不再那么简单。为解决高维数据的可视化问题,我们可以使用平行坐标图。以下关于平行坐标图的解释引自百度百科:为了克服传统的笛卡尔直角坐标系...

    平行坐标图简介

        当数据的维度超过三维时,此时数据的可视化就变得不再那么简单。为解决高维数据的可视化问题,我们可以使用平行坐标图。以下关于平行坐标图的解释引自百度百科:为了克服传统的笛卡尔直角坐标系容易耗尽空间、 难以表达三维以上数据的问题, 平行坐标图将高维数据的各个变量用一系列相互平行的坐标轴表示, 变量值对应轴上位置。为了反映变化趋势和各个变量间相互关系,往往将描述不同变量的各点连接成折线。所以平行坐标图的实质是将m维欧式空间的一个点Xi(xi1,xi2,...,xim) 映射到二维平面上的一条曲线。在N条平行的线的背景下,(一般这N条线都竖直且等距),一个在高维空间的点可以被表示为一条拐点在N条平行坐标轴的折线,在第K个坐标轴上的位置就表示这个点在第K个维的值。

    绘制平行坐标图

        本文主要介绍两种利用Python绘制平行坐标图的方法,分别是利用pandas包绘制和利用plotly包绘制(默认已安装pandas包和plotly包)。

    利用pandas实现平行坐标图的绘制

    import matplotlib.pyplot as plt
    import pandas as pd
    import seaborn as sns
    from pandas.plotting import parallel_coordinates
    
    data = sns.load_dataset('iris')
    
    fig,axes = plt.subplots()
    parallel_coordinates(data,'species',ax=axes)
    fig.savefig('parallel.png')

        绘制的平行坐标图如下所示:

        从上图可以看到x轴上变量共用一个y坐标轴,此时因sepal_length、sepal_width、petal_length以及petal_width这四个变量的值得范围相近,利用这种方式作出的共用y轴的平行坐标图有着很好的可视化效果;但假如sepal_length、sepal_width、petal_length以及petal_width这些变量的值的范围相差较大时,这种共用y轴的平行坐标图就不再适用,此时我们需要的是y轴独立的平行坐标图。下面介绍的另一种方法实现的就是y轴独立的平行坐标图。

    利用plotly实现平行坐标图的绘制

        plotly绘图有两种模式,一种是online模式,另一种是offline模式。本文使用的是offline模式,且是在jupyter notebook中进行绘图。

        首先熟悉一下plotly的绘图方式:

    import plotly as py
    import plotly.graph_objs as go
    py.offline.init_notebook_mode(connected=True)   # 初始化设置
    
    py.offline.iplot({
        "data": [go.Parcoords(
            line = dict(color = 'blue'),
            dimensions = list([
                dict(range = [1,5],
                     constraintrange = [1,2],
                     label = 'A', values = [1,4]),
                dict(range = [1.5,5],
                     tickvals = [1.5,3,4.5],
                     label = 'B', values = [3,1.5]),
                dict(range = [1,5],
                     tickvals = [1,2,4,5],
                     label = 'C', values = [2,4],
                     ticktext = ['text 1', 'text 2', 'text 3', 'text 4']),
                dict(range = [1,5],
                     label = 'D', values = [4,2])
            ])
        )],
        "layout": go.Layout(title="My first parallel coordinates")
    })

        绘制图形如下所示: 

    绘制鸢尾花数据的平行坐标图:

    df = sns.load_dataset('iris')
    df['species_id'] = df['species'].map({'setosa':1,'versicolor':2,'virginica':3})  #用于颜色映射
       
    py.offline.iplot({
        "data": [go.Parcoords(
            line = dict(color = df['species_id'],
                       colorscale = [[0,'#D7C16B'],[0.5,'#23D8C3'],[1,'#F3F10F']]),
            dimensions = list([
                dict(range = [2,8],
                    constraintrange = [4,8],
                    label = 'Sepal Length', values = df['sepal_length']),
                dict(range = [1,6],
                    label = 'Sepal Width', values = df['sepal_width']),
                dict(range = [0,8],
                    label = 'Petal Length', values = df['petal_length']),
                dict(range = [0,4],
                    label = 'Petal Width', values = df['petal_width'])
            ])
        )],
        "layout": go.Layout(title='Iris parallel coordinates plot')
    })

        绘制的图形如下所示:

        注:关于plotly.offline.iplot、go.Parcoords以及go.Layout的用法可以利用help关键字查看相关帮助文档,与pyecharts不同,plotly提供的帮助文档非常详细。

     

    参考:

    https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.plotting.parallel_coordinates.html?highlight=parallel_coordinates#pandas.plotting.parallel_coordinates

    https://plot.ly/python/parallel-coordinates-plot/

    https://plot.ly/python/getting-started/#start-plotting-online

    https://baike.baidu.com/item/%E5%B9%B3%E8%A1%8C%E5%9D%90%E6%A0%87%E5%9B%BE/7430642

    展开全文
  • python可视化图表案例-棒棒糖图与平行坐标图
  • 技术要点:平行坐标图适合展示具有多个属性的数据,每个坐标轴表示一个属性,每条曲线表示一个样本。参考代码:运行效果:----------相关阅读----------教学课件1900页Pyth...
  • 3.7.1 平行坐标系及应用场景 1.平行坐标系简介 ...尽管平行坐标系是折线类型,但和普通的折线是有区别的,平行坐标系不局限于描述单一趋势关系,如时间序列的不同时间点,可以为不同类型变量的数值描....
  • 使用传统的绘图类型可以相对直观地查看二维和三维数据。...有几个绘图包提供平行坐标绘图,例如Matlab、R、VTK type 1和VTK type 2,但我不知道如何使用Matplotlib创建一个。Matplotlib中是否有...
  • pandas的parallel_coordinates函数非常有用:import pandasimport matplotlib.pyplot as pltfrom pandas.tools.plotting import parallel_coordinatessampdata = read_csv('/usr/local/lib/python3.3/dist-packages/...
  • Python使用matplotlib可视化多变量的平行坐标轴图、平行坐标轴通过可视化查看多个特征的平行坐标图来查看多个分组的数据是否具有区分性、判别性(Parallel Coordinates)
  • 幸运的是,平行坐标图提供了一种查看较大尺寸结果的机制。一些绘图软件包提供了平行坐标绘图,例如Matlab,R,VTK类型1和VTK类型2,但是我看不到如何使用Matplotlib创建一个。Matplotlib中是否有内置的平行坐标图?...
  • [宜配屋]听

    2020-12-09 14:44:20
    平行坐标图,一种数据可视化的方式。以多个垂直平行的坐标轴表示多个维度,以维度上的刻度表示在该属性上对应值,相连而得的一个折线表示一个样本,以不同颜色区分类别。但是很可惜,才疏学浅,没办法在Python里实现...
  • 平行坐标是可视化高维几何和分析多元数据的常用方法。 为了在n维空间中显示一组点,绘制由n条平行线组成的背景,通常是垂直且等距的。所述的点N 维空间被表示为折线与顶点在平行的轴线;...平行坐标图(para...
  • Pyecharts库实现平行坐标图的绘制(iris数据集) 一、安装pyecharts库 首先需要安装pyecharts库,网上的教程有很多,但很多版本号并不好用,最终我是用了1.7.1这个版本。 安装pyecharts参考这篇文章,点这里 二、...
  • 数据集是经典的鸢尾花数据集iris,需要使用平行坐标图来进行绘制。 数据展示 考虑使用pyehcrts可以做出可以交互的图片,觉得效果很不错,因此,最终还是选择了pyecharts作为这次的绘图工具。 根据官方的绘制案例,...
  • 机器学习系列-数据分析-平行坐标图

    千次阅读 2020-09-17 18:53:23
    本文主要介绍了机器学习中数据分析的常用数据可视化方法之一-——平行坐标图,以及使用python绘制平行坐标图的方法,并引用鸢尾花数据集为实例绘制平行坐标图
  • .text}, ], parallel: { left: '5%', right: '13%', bottom: '10%', top: '15%', parallelAxisDefault: { type: 'value', name: '平行坐标', nameLocation: 'end', nameGap: 20, nameTextStyle: { fontSize: 12 } } ...
  • 平行坐标图是对于具有多个属性问题的一种可视化方法,下图为平行坐标图的基本样式,数据集的一行数据在平行坐标图中用一条折线表示,纵向是属性值,横向是属性类别(用索引表示)。 pandas.plotting.parallel_...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 5,233
精华内容 2,093
关键字:

平行坐标图python