0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

10个超级实用的数据可视化图表

数据分析与开发 来源:爱数据LoveData 2023-01-12 10:04 次阅读

可视化是一种方便的观察数据的方式,可以一目了然地了解数据块。我们经常使用柱状图、直方图、饼图、箱图、热图、散点图、线状图等。这些典型的图对于数据可视化是必不可少的。除了这些被广泛使用的图表外,还有许多很好的却很少被使用的可视化方法,这些图有助于完成我们的工作,下面我们看看有那些图可以进行。

1、平行坐标图

Parallel Coordinate

我们最多可以可视化 3 维数据。但是我们有时需要可视化超过3维的数据才能获得更多的信息。我们经常使用PCAt-SNE来降维并绘制它。在降维的情况下,可能会丢失大量信息。在某些情况下,我们需要考虑所有特征,平行坐标图有助于做到这一点。

3ef562aa-9198-11ed-bfe3-dac502259ad0.png

鸢尾花数据集的平行坐标图

上面的图片。横线(平行轴)表示鸢尾花的特征(花瓣长、萼片长、萼片宽、花瓣宽)。分类是Setosa, Versicolor和Virginica。上图将该物种编码为Setosa→1,Versicolor→2,Virginica→3。每个平行轴包含最小值到最大值(例如,花瓣长度从1到6.9,萼片长度从4.3到7.9,等等)。例如,考虑花瓣长度轴。这表明与其他两种植物相比,濑蝶属植物的花瓣长度较小,其中维珍属植物的花瓣长度最高。

有了这个图,我们可以很容易地获得数据集的总体信息。数据集是什么样子的?让我们来看看。

3f2362d6-9198-11ed-bfe3-dac502259ad0.png

让我们用Plotly Express库[1]可视化数据。Plotly库提供了一个交互式绘图工具。


		

importplotly.expressaspx df=px.data.iris() fig=px.parallel_coordinates(df,color="species_id",labels={"species_id":"Species", "sepal_width":"SepalWidth","sepal_length":"SepalLength", "petal_width":"PetalWidth","petal_length":"PetalLength",}, color_continuous_scale=px.colors.diverging.Tealrose, color_continuous_midpoint=2) fig.show()

output

3f31f2c4-9198-11ed-bfe3-dac502259ad0.png

除了上图以外我们还可以使用其他库,如pandasscikit-learnmatplotlib来绘制并行坐标。

2、六边形分箱图

Hexagonal Binning

六边形分箱图是一种用六边形直观表示二维数值数据点密度的方法。


		

ax=df.plot.hexbin(x='sepal_width',y='sepal_length', gridsize=20,color='#BDE320')

output

3f42d008-9198-11ed-bfe3-dac502259ad0.png

Pandas允许我们绘制六边形binning [2]。我已经展示了用于查找sepal_widthsepal_length列的密度的图。

如果仔细观察图表,我们会发现总面积被分成了无数个六边形。每个六边形覆盖特定区域。我们注意到六边形有颜色变化。六边形有的没有颜色,有的是淡绿色,有的颜色很深。根据图右侧显示的色标,颜色密度随密度变化。比例表示具有颜色变化的数据点的数量。六边形没有填充颜色,这意味着该区域没有数据点。

其他库,如matplotlibseabornbokeh(交互式绘图)也可用于绘制它。

3、等高线密度图

Countour

二维等高线密度图是可视化特定区域内数据点密度的另一种方法。这是为了找到两个数值变量的密度。例如,下面的图显示了在每个阴影区域有多少数据点。


		

importplotly.expressaspx fig=px.density_contour(df,x="sepal_width",y="sepal_length") fig.update_traces(contours_coloring="fill",contours_showlabels=True) fig.show()

output

3f534f82-9198-11ed-bfe3-dac502259ad0.png

为了生成上面的图表,我这里使用了plotly库,因为它可以方便地绘制交互式的图表。我们这里绘制了两个变量sepal_widthsepal_length的密度。 当然,也可以使用其他库,如seabornmatplotlib等。

4、QQ-plot

QQ plot是另一个有趣的图。QQQuantile - Quantile plot的缩写(Quantile/percentile是一个范围,在这个范围内数据下降了指定百分比。例如,第10个quantile/percentile表示在该范围下,找到了10%的数据,90% 超出范围)。这是一种直观地检查数值变量是否服从正态分布的方法。让我解释一下它是如何工作的。

3f617936-9198-11ed-bfe3-dac502259ad0.png

(a)样本分布(b)标准正态分布

图(a)是样本分布;(b)是标准正态分布。对于样本分布,数据范围从10到100(100% 数据在 10 到 100 之间)。但对于标准正态分布,100%的数据在-3 到3(z 分数)的范围内。在QQ图中,两个x轴值均分为 100个相等的部分(称为分位数)。如果我们针对x和y轴绘制这两个值,我们将得到一个散点图。

3f70a9b0-9198-11ed-bfe3-dac502259ad0.png

QQ-plot

散点图位于对角线上。这意味着样本分布是正态分布。如果散点图位于左边或右边而不是对角线,这意味着样本不是正态分布的。

导入必要的库


		

importpandasaspd importnumpyasnp importmatplotlib.pyplotasplt importseabornassns

生成正态分布数据。


		

np.random.seed(10) #GenerateUnivariateObservations gauss_data=5*np.random.randn(100)+50

绘制数据点的分布。

sns.histplot(data=gauss_data,kde=True)

output

3f7fa8f2-9198-11ed-bfe3-dac502259ad0.png

该图显示数据是正态分布的。我们用数据点做qq-plot来检验它是否正态分布。


		

importstatsmodels.apiassm #q-qplot sm.qqplot(gauss_data,line='s') plt.show()

output

3f8b07c4-9198-11ed-bfe3-dac502259ad0.png

该图显示散点位于对角线上。所以它是正态分布的。

小提琴图

Violin Plot

小提琴图与箱线图相关。我们能从小提琴图中获得的另一个信息是密度分布。简单来说就是一个结合了密度分布的箱线图。我们将其与箱线图进行比较。 在小提琴图中,小提琴中间的白点表示中点。实心框表示四分位数间距 (IQR)。上下相邻值是异常值的围栏。超出范围,一切都是异常值。下图显示了比较。

3f99d83a-9198-11ed-bfe3-dac502259ad0.png

盒状图和小提琴状图的常见组成。所有学术级别的薪酬总额

让我们看看小提琴图的可视化。


		

importseabornassns sns.violinplot(data=df,y="sepal_width")

output

3fab5380-9198-11ed-bfe3-dac502259ad0.png

我们还可以通过传递名称来绘制不同物种的小提琴图。


		

importseabornassns sns.violinplot(data=df,x='species',y="sepal_width")

output

3fc285d2-9198-11ed-bfe3-dac502259ad0.png

还可以使用其他库,如plotlymatplotlib等来绘制小提琴图。

箱线图的改进版

Boxen plot

Boxenplotseaborn库引入的一种新型箱线图。对于箱线图,框是在四分位数上创建的。但在Boxenplot中,数据被分成更多的分位数。它提供了对数据的更多内存。

鸢尾花数据集的Boxenplot显示了sepal_width的数据分布。

sns.boxenplot(x=df["sepal_width"])

output

3fed6702-9198-11ed-bfe3-dac502259ad0.png

上图显示了比箱线图更多的盒。这是因为每个框代表一个特定的分位数。

sns.boxenplot(data=df,x="species",y='sepal_width')

output

3ffac2d0-9198-11ed-bfe3-dac502259ad0.png

不同物种sepal_widthBoxenplot图。

点图

下图中有一些名为误差线的垂直线和其他一些连接这些垂直线的线。让我们看看它的确切含义。

40092686-9198-11ed-bfe3-dac502259ad0.png

点图是一种通过上图中显示的点的位置来表示数值变量集中趋势的方法,误差条表示变量的不确定性(置信区间)[4]。绘制线图是为了比较不同分类值的数值变量的变异性 [4]。

让我们举一个实际的例子—-我们继续使用seaborn库和iris数据集(在平行坐标部分中提到)。


		
			importseabornassns sns.pointplot(data=df,x="species",y="sepal_width")

output

402829e6-9198-11ed-bfe3-dac502259ad0.png

分簇散点图

Swarm plot

Swarm plot是另一个受“beeswarm”启发的有趣图表。通过此图我们可以轻松了解不同的分类值如何沿数值轴分布[5]。它在不重叠数据点的情况下绘制数据。但它不适用于大型数据集。


		

importseabornassns sns.swarmplot(data=df,x="species",y="sepal_width")

output

4036d66c-9198-11ed-bfe3-dac502259ad0.png

旭日图

Sunburst Chart

它是圆环图或饼图的定制版本,将一些额外的层次信息集成到图中 [7]。

4041d4ae-9198-11ed-bfe3-dac502259ad0.png

Sunburst Chart

整个图表被分成几个环(从内到外)。它保存层次结构信息,其中内环位于层次结构的顶部,外环位于较低的[7]阶。

404fb330-9198-11ed-bfe3-dac502259ad0.png


		

importplotly.expressaspx df=px.data.tips()

output

405f854e-9198-11ed-bfe3-dac502259ad0.png

绘制旭日图


		

fig=px.sunburst(df,path=['sex','day','time'], values='total_bill',color='time') fig.show()

output

406b3bc8-9198-11ed-bfe3-dac502259ad0.png

sunburst类的path属性提供了层次结构,其中性别位于层次结构的顶部,然后是日期和时间。

词云

Word Cloud

词云图的想法非常简单。假设我们有一组文本文档。单词有很多,有些是经常出现的,有些是很少出现的。在词云图中,所有单词都被绘制在特定的区域中,频繁出现的单词被高亮显示(用较大的字体显示)。有了这个词云,我们可以很容易地找到重要的客户反馈,热门的政治议程话题等。


		

数据集 https://opendatacommons.org/licenses/odbl/1-0/

导入数据集

importpandasaspd
data=pd.read_csv('/work/android-games.csv')
data.head()

output

4079271a-9198-11ed-bfe3-dac502259ad0.png

我们统计每个类别的数据数量


		

data.category.value_counts() GAMECARD126 GAMEWORD104 GAMEACTION100 GAMEADVENTURE100 GAMESTRATEGY100 GAMEPUZZLE100 GAMESIMULATION100 GAMECASUAL100 GAMEARCADE100 GAMEROLEPLAYING100 GAMETRIVIA100 GAMEBOARD100 GAMECASINO100 GAMERACING100 GAMEEDUCATIONAL100 GAMESPORTS100 GAMEMUSIC100 Name:category,dtype:int64

然后我们来进行可视化。


		

#importingthemodulefromwordcloudlibrary fromwordcloudimportWordCloud importmatplotlib.pyplotasplt #creatingatextfromthecategorycolumnbytakingonlythe2ndpartofthecategory. text="".join(cat.split()[1]forcatindata.category) #generatingthecloud word_cloud=WordCloud(collocations=False,background_color='black').generate(text) plt.imshow(word_cloud,interpolation='bilinear') plt.axis("off") plt.show()

output

该图表显示了频率最高的所有类别。我们也可以用这个图从文本中找到经常出现的单词。

总结

数据可视化是数据科学中不可缺少的一部分。在数据科学中,我们与数据打交道。手工分析少量数据是可以的,但当我们处理数千个数据时它就变得非常麻烦。如果我们不能发现数据集的趋势和洞察力,我们可能无法使用这些数据。希望上面介绍的的图可以帮助你深入了解数据。

以下是本文的引用

https://plotly.com/python/parallel-coordinates-plot/https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.plot.hexbin.html

Hintze, V. P. A Box Plot-Density Trace Synergism. Am. Sat, (52), 181 (Open Access Journal).

seaborn.pointplot — seaborn 0.12.1 documentation (pydata.org)

seaborn.swarmplot—seaborn0.12.1documentation(pydata.org)CreateasunburstchartinOffice—MicrosoftSupport

审核编辑 :李倩



声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 数据
    +关注

    关注

    8

    文章

    6853

    浏览量

    88766
  • 可视化
    +关注

    关注

    1

    文章

    1171

    浏览量

    20872
  • 数据集
    +关注

    关注

    4

    文章

    1205

    浏览量

    24629

原文标题:总结归纳了10个超级实用的数据可视化图表

文章出处:【微信号:DBDevs,微信公众号:数据分析与开发】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    智慧园区数据可视化优势体现在哪些地方

    智慧园区数据可视化是当今数字化时代的重要工具,为园区管理者和决策者提供了强大的分析和展示数据的能力。以下是智慧园区数据可视化的应用优势,详细
    的头像 发表于 11-15 10:30 58次阅读
    智慧园区<b class='flag-5'>数据</b><b class='flag-5'>可视化</b>优势体现在哪些地方

    工业数据可视化管理平台是什么

    数据可视化管理平台应运而生,它以其独特的功能和优势,正在成为工业数字转型的重要工具。 工业数据可视化管理平台的定义 工业
    的头像 发表于 08-28 14:21 232次阅读

    博世Logistics Cockpit软件平台这套神秘引擎把数据可视化玩得很酷

    数据的呈现方式, 你更喜欢哪一种?谁会有耐心从密密麻麻的数据中挖掘信息呢?相比之下,图表、趋势图等视觉呈现更易于理解与分析。 你看,当纷繁复杂的行行
    的头像 发表于 08-13 10:40 439次阅读
    博世Logistics Cockpit软件平台这套神秘引擎把<b class='flag-5'>数据</b><b class='flag-5'>可视化</b>玩得很酷

    大屏数据可视化 开源

    在当今信息爆炸的时代,数据已经成为各个行业决策制定和业务发展的关键。为了更直观、准确地理解和利用海量数据, 大屏数据可视化 成为一种强大的工具。通过将
    的头像 发表于 06-27 16:06 366次阅读
    大屏<b class='flag-5'>数据</b><b class='flag-5'>可视化</b> 开源

    如何实现园区大屏可视化

    如何实现园区大屏可视化? 1.建立孪生模型:首先需要建立园区的孪生模型,即一个数字化的虚拟模型,反映了园区的实际情况、结构、设备、人员等信息。这个模型可以通过传感器、监控设备、GIS 数据等实时获取和更新,确保与实际情况保持
    的头像 发表于 06-19 15:39 372次阅读
    如何实现园区大屏<b class='flag-5'>可视化</b>?

    物联网时代,为什么需要可视化数据大屏

    效率、能耗水平等信息,从而合理优化并采取措施,促进企业的数字转型。 由于人类大脑对视觉信息的处理优于对文本的处理,因此使用图表、图形和设计元素把数据进行可视化,可以帮助更容易的了解
    的头像 发表于 06-18 13:53 311次阅读
    物联网时代,为什么需要<b class='flag-5'>可视化</b><b class='flag-5'>数据</b>大屏

    态势数据可视化技术有哪些

    智慧华盛恒辉态势数据可视化技术是一种将数据以图形、图像、动画等视觉形式展现出来的技术,特别是在处理和分析态势数据时,该技术能够将复杂的数据
    的头像 发表于 06-11 15:47 345次阅读

    智慧大屏是如何实现数据可视化的?

    智慧大屏,作为数据可视化的重要载体,已在城市管理、交通监控、商业运营等领域广泛应用。本文旨在阐述智慧大屏实现数据可视化的关键技术和方法,包括数据
    的头像 发表于 06-04 15:02 540次阅读
    智慧大屏是如何实现<b class='flag-5'>数据</b><b class='flag-5'>可视化</b>的?

    大屏数据可视化的作用和意义

    大屏数据可视化是指利用大屏幕设备展示数据信息,通过图表、图像、动画等视觉手段将数据呈现出来,以
    的头像 发表于 06-03 17:56 613次阅读

    大屏数据可视化是什么?运用了什么技术

    大屏数据可视化 是一种利用大屏幕设备展示数据可视化结果的技术,旨在以更生动、直观的方式呈现数据信息。这种
    的头像 发表于 05-24 15:35 787次阅读

    数据可视化:企业数字建设效果的呈现

    数据可视化即通过图表的形式将数据的内在信息有逻辑性地呈现给用户,使用户更容易发现数据中蕴藏的规律,找出问题,进而做出决策;另一方面,
    的头像 发表于 04-29 10:18 403次阅读
    <b class='flag-5'>数据</b><b class='flag-5'>可视化</b>:企业数字<b class='flag-5'>化</b>建设效果的呈现

    态势数据可视化技术有哪些

    智慧华盛恒辉态势数据可视化技术是一种将复杂、动态的态势数据以直观、易于理解的方式展现出来的技术手段。以下是几种主要的态势数据可视化技术: 网
    的头像 发表于 04-22 15:17 370次阅读

    物联网可视化监控大屏如何实现?有什么功能?

    在物联网飞速发展的时代,可视化监控大屏成为了众多企业和机构实现智能管理和监控的重要工具。它将各种各样设备的运行状态和数据以图形、图表、动画等形式展示在大屏或其他移动设备上,使得用户能
    的头像 发表于 04-11 09:25 766次阅读

    一键生成可视化图表/大屏 这13款数据可视化工具很强大

    前言 数字经济时代,我们每天正在处理海量数据,对数据可视化软件的需求变得突出,它可以帮助人们通过模式、趋势、仪表板、图表等视觉辅助工具理解数据
    的头像 发表于 12-19 17:27 5169次阅读
    一键生成<b class='flag-5'>可视化</b><b class='flag-5'>图表</b>/大屏 这13款<b class='flag-5'>数据</b><b class='flag-5'>可视化</b>工具很强大

    数字时代:关于数据可视化的定义/优势及示例

    毫无意义和难以管理。这就是数据可视化发挥关键作用的地方。 数据可视化的定义 “数据可视化”的定义
    的头像 发表于 12-12 18:04 809次阅读
    数字时代:关于<b class='flag-5'>数据</b><b class='flag-5'>可视化</b>的定义/优势及示例