Python数据可视化,还能画4维图???下
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python数据可视化,还能画4维图???下相关的知识,希望对你有一定的参考价值。
参考技术A 因此,色调作为类别或群体的良好区分,虽然如上图观察没有相关性或相关性非常弱,但从这些图中我们仍可以理解,与白葡萄酒相比,红葡萄酒的硫酸盐含量较高。你也可以使用核密度图代替散点图来理解 3 维数据。与预期一致且相当明显,红葡萄酒样品比白葡萄酒具有更高的硫酸盐含量。你还可以根据色调强度查看密度浓度。
如果我们正在处理有多个分类属性的 3 维数据,我们可以利用色调和其中一个常规轴进行可视化,并使用如箱线图或小提琴图来可视化不同的数据组。
在上图中,我们可以看到,在右边的 3 维可视化图中,我们用 x 轴表示葡萄酒质量,wine_type 用色调表征。我们可以清楚地看到一些有趣的见解,例如与白葡萄酒相比红葡萄酒的挥发性酸度更高。
你也可以考虑使用箱线图来代表具有多个分类变量的混合属性。
我们可以看到,对于质量和 quality_label 属性,葡萄酒酒精含量都会随着质量的提高而增加。另外红葡萄酒与相同品质类别的白葡萄酒相比具有更高的酒精含量(中位数)。然而,如果检查质量等级,我们可以看到,对于较低等级的葡萄酒(3 和 4),白葡萄酒酒精含量(中位数)大于红葡萄酒样品。否则,红葡萄酒与白葡萄酒相比似乎酒精含量(中位数)略高。
可视化 4 维数据(4-D)
基于上述讨论,我们利用图表的各个组件可视化多个维度。一种可视化 4 维数据的方法是在传统图如散点图中利用深度和色调表征特定的数据维度。
wine_type 属性由上图中的色调表征得相当明显。此外,由于图的复杂性,解释这些可视化开始变得困难,但我们仍然可以看出,例如红葡萄酒的固定酸度更高,白葡萄酒的残糖更高。当然,如果酒精和固定酸度之间有某种联系,我们可能会看到一个逐渐增加或减少的数据点趋势。
另一个策略是使用二维图,但利用色调和数据点大小作为数据维度。通常情况下,这将类似于气泡图等我们先前可视化的图表。
我们用色调代表 wine_type 和数据点大小代表残糖。我们确实看到了与前面图表中观察到的相似模式,白葡萄酒气泡尺寸更大表征了白葡萄酒的残糖值更高。
如果我们有多于两个分类属性表征,可在常规的散点图描述数值数据的基础上利用色调和分面来描述这些属性。我们来看几个实例。
这种可视化的有效性使得我们可以轻松识别多种模式。白葡萄酒的挥发酸度较低,同时高品质葡萄酒具有较低的酸度。也基于白葡萄酒样本,高品质的葡萄酒有更高的酒精含量和低品质的葡萄酒有最低的酒精含量!
让我们借助一个类似实例,并建立一个 4 维数据的可视化。
我们清楚地看到,高品质的葡萄酒有较低的二氧化硫含量,这是非常相关的,与葡萄酒成分的相关领域知识一致。我们也看到红葡萄酒的二氧化硫总量低于白葡萄酒。在几个数据点中,红葡萄酒的挥发性酸度水平较高。
可视化 5 维数据(5-D)
我们照旧遵从上文提出的策略,要想可视化 5 维数据,我们要利用各种绘图组件。我们使用深度、色调、大小来表征其中的三个维度。其它两维仍为常规轴。因为我们还会用到大小这个概念,并借此画出一个三维气泡图。
气泡图灵感来源与上文所述一致。但是,我们还可以看到以二氧化硫总量为指标的点数,发现白葡萄酒的二氧化硫含量高于红葡萄酒。
除了深度之外,我们还可以使用分面和色调来表征这五个数据维度中的多个分类属性。其中表征大小的属性可以是数值表征甚至是类别(但是我们可能要用它的数值表征来表征数据点大小)。由于缺乏类别属性,此处我们不作展示,但是你可以在 2 维面板上绘制出来且易于说明和绘制。
我们已经领略到多位数据可视化的复杂性!如果还有人想问,为何不增加维度?让我们继续简单探索下!
可视化 6 维数据(6-D)
目前我们画得很开心(我希望是如此!)我们继续在可视化中添加一个数据维度。我们将利用深度、色调、大小和形状及两个常规轴来描述所有 6 个数据维度。
我们将利用散点图和色调、深度、形状、大小的概念来可视化 6 维数据。
这可是在一张图上画出 6 维数据!我们用形状表征葡萄酒的质量标注,优质(用方块标记),一般(用 x 标记),差(用圆标记):用色调表示红酒的类型,由深度和数据点大小确定的酸度表征总二氧化硫含量。
这个解释起来可能有点费劲,但是在试图理解多维数据的隐藏信息时,最好结合一些绘图组件将其可视化。
结合形状和 y 轴的表现,我们知道高中档的葡萄酒的酒精含量比低质葡萄酒更高。
结合色调和大小的表现,我们知道白葡萄酒的总二氧化硫含量比红葡萄酒更高。
结合深度和色调的表现,我们知道白葡萄酒的酸度比红葡萄酒更低。
结合色调和 x 轴的表现,我们知道红葡萄酒的残糖比白葡萄酒更低。
结合色调和形状的表现,似乎白葡萄酒的高品质产量高于红葡萄酒。(可能是由于白葡萄酒的样本量较大)
我们也可以用分面属性来代替深度构建 6 维数据可视化效果。
因此,在这种情况下,我们利用分面和色调来表征三个分类属性,并使用两个常规轴和大小来表征 6 维数据可视化的三个数值属性。
四、结论
数据可视化与科学一样重要。我们的目的不是为了记住所有数据,也不是给出一套固定的数据可视化规则。本文的主要目的是理解并学习高效的数据可视化策略,尤其是当数据维度增大时。希望你以后可以用本文知识可视化你自己的数据集。
强!1 行 Python 代码就可实现炫酷可视化
之前画图一直在用matlibplot、pyecharts,最近学习了一个新的可视化库--cufflinks,用了两天我已经深深爱上它了
主要是因为它用法简单、图形漂亮、代码量少,用一两行代码,就能画出非常漂亮的图形
下面我们一起来看看吧!
1.用法简单
cufflinks库主要和dataFrame数据结合使用,绘图函数就是 dataFrame.iplot,记住这个就行了,但是 iplot 函数里的参数很多,一些参数说明如下:
kind:图的种类,如 scatter、pie、histogram 等
mode:lines、markers、lines+markers,分别表示折线、点、折线和点
colors:轨迹对应的颜色
dash:轨迹对应的虚实线,solid、dash、dashdot 三种
width:轨迹的粗细
xTitle:横坐标名称
yTitle:纵坐标的名称
title:图表的标题
如下图,df为随机生成的dataFrame数据,kind='bar'表示柱状图,title代表标题,xTitle命名X轴,yTitle命名Y轴:
import pandas as pd
import numpy as np
import cufflinks as cf
df=pd.DataFrame(np.random.rand(12, 4), columns=['a', 'b', 'c', 'd'])
df.iplot(kind ='bar',title='示例', xTitle = 'X轴', yTitle ='Y轴')
2.少量代码就能画出非常漂亮的图形
cufflinks为我们提供了丰富的主题样式,支持包括polar、pearl、henanigans、solar、ggplot、space和white等7种主题。
折线图
cf.datagen.lines(4,10).iplot(mode='lines+markers',theme='solar')
cufflinks使用datagen生成随机数,figure定义为lines形式,cf.datagen.lines(2,10)的具体形式如下:
cf.datagen.lines(2,10) #2代表2组,10代表10天
WCB.EH | OAA.CQ | |
---|---|---|
2015-01-01 | -0.052580 | -0.351618 |
2015-01-02 | 1.056254 | -1.476417 |
2015-01-03 | 0.078017 | 1.129168 |
2015-01-04 | 0.282141 | 0.908655 |
2015-01-05 | 0.960537 | -0.223996 |
2015-01-06 | 1.420355 | 0.212851 |
2015-01-07 | 2.266144 | 0.358502 |
2015-01-08 | 0.008034 | 1.086130 |
2015-01-09 | 1.876946 | 2.226895 |
2015-01-10 | 1.855625 | 2.852383 |
散点图
df = pd.DataFrame(np.random.rand(50, 4), columns=['a', 'b', 'c', 'd'])
df.iplot(kind='scatter',mode='markers',colors=['orange','teal','blue','yellow'],size=20,theme='solar')
气泡图
df.iplot(kind='bubble',x='a',y='b',size='c',theme='solar')
subplots 子图
df=cf.datagen.lines(4)
df.iplot(subplots=True,shape=(4,1),shared_xaxes=True,vertical_spacing=.02,fill=True,theme='ggplot')
箱形图
cf.datagen.box(20).iplot(kind='box',legend=False,theme='ggplot')
直方图
df.iloc[:,0:3].iplot(kind='histogram')
3D图
cf.datagen.scatter3d(5,4).iplot(kind='scatter3d',x='x',y='y',z='z',text='text',categories='categories')
怎么样?是不是很方便,希望我的介绍能够起到抛砖引玉的作用,cufflinks库还有更丰富的绘图功能等着你去挖掘。
< END >
微信扫码关注,了解更多内容
以上是关于Python数据可视化,还能画4维图???下的主要内容,如果未能解决你的问题,请参考以下文章
✨ Python入门 ✨ 3️⃣ 画一个大太阳 ☀️,甚至还能画个蜡笔小❤️