在线可视化python网站_Python的可视化工具概述

介绍

在Python世界中,有大量数据可视化的选项.因为各种各样,要知道什么时候使用哪个是非常困难的.本文包含一些较为流行的样例,并说明如果使用其创建简单的条形图.我会使用以下包/工具创建绘图例子:

Pandas

Seaborn

ggplot

Bokeh

pygal

Plotly

在例子用,我将使用pandas操作数据,并启动其可视化.在大多数情况下使用这些工具不需要pandas,但是我觉得pandas+可视化工具如此普遍,这是最好的起点。

Matplotlib怎么样?

Matplotlib 是python可视化库的祖父.它非常强大,但是太过复杂.你可以使用Matplotlib 做任何你需要做到的事情,但是并不容易弄明白.我不打算通过纯Matplotlib 样例讲解,因为许多工具(尤其Pandas和Seaborn)是Matplotlib的thin wrappers.

对Matplotlib最大的抱怨是需要大量工作的到期望的图表.在处理这些例子时,我发现更容易获得优美的图形,不需要大量大代码.对于matplotlib冗余性的一个小例子,看一下这个ggplot后例子。

方法

我相信,只要人们开始阅读这一点,他们会指出更好的方式来使用这些工具。我的目标不是建立在每个例子完全相同的图形.我想在搜索解决方案大致相同的时间以大致相同的方式可视化数据.

按这个过程,最大的挑战是格式化x和y轴,使得在给定一些大标签时数据看起来合理.也许花一些时间弄清楚每个工具希望数据如何格式化.一旦弄明白这些部分,剩下的部分比较简单的.

另外一个需要考虑的电视,条形图可能是制作图标类型最简单的一种.这些工具让你能够绘制更多类型的图标.我的示例更注重于易格式化性而不是创新可视化例子,因为标签,一些图表占用了很大空间,所以我削减了,只是为了保证文章的长度管理.最后我调整了图像,因此任何模糊是缩放问题,并且不是实际输出质量.

最后,我接近使用其他工具替换Excel的心态.我认为我的例子更能说明报告,演讲,邮件或者静态网页中的展示.如果你评估实时数据可视化或者通过其他机制共享的工具,那么部分工具提供了很多我没有提到的功能.

数据集

在上篇文章中介绍了我们将要处理的数据.数据集中包含125行项目,但我选择关注前10以保证简单点.你可以在这找到完整的数据.

Pandas

我使用pandas DataFrame作为所有各种图标的出发点.幸运的是,pandas为我们提供了内置的matplotlib层绘图能力.将使用它作为基准.首先,导入模块,并将数据读入DataFrame.我们希望对数据进行排序,并限制为前10项.

budget = pd.read_csv("mn-budget-detail-2014.csv")

budget = budget.sort('amount',ascending=False)[:10]

对所有例子我们使用同样的budget.以下是前5项目样子:

40eed3a056c33da47860c4dec2c9ad50.png

现在,设置展示使用更好的默认值,并创建一个条形图:

pd.options.display.mpl_style = 'default'

budget_plot = budget.plot(kind="bar",x=budget["detail"],

title="MN Capital Budget - 2014",

legend=False)

使用detail列创建图标同时展示标题并区属图例.这是将图片存为png的额外代码.

fig = budget_plot.get_figure()

fig.savefig("2014-mn-capital-budget.png")

这是图片样子(阶段是为了文章长度管理).

43ceeb57fb1e67aaa0987a7b05a670dc.png

看起来基本不错.理想情况下,我想多做一些y轴的格式化,但需要matplotlib 的处理.这是个完美有用的可视化,但是不能通过pandas做更多纯粹的定制.

Seaborn

Seaborn是一个基于matplotlib的可视化库.旨在让默认的数据可视化更加悦目.同时让复杂的图表更简单的创建.它和pandas集成.我的例子不允许Seaborn 显著差异.我喜欢Seaborn 的一个原因是各种各样的内置样式,让你快速更改调色板以看起来更加漂亮.因此,关于简单的图表Seaborn没有为我们做很多. 标准导入并读入数据:

import pandas as pd

import seaborn as sns

import matplotlib.pyplot as plt

budget = pd.read_csv("mn-budget-detail-2014.csv")

budget = budget.sort('amount',ascending=False)[:>10]

使用x_order对x轴项目排序.这部分代码设置排序,图表风格和条形图颜色:

sns.set_style("darkgrid")

bar_plot = sns.barplot(x=budget["detail"],y=budget["amount"],

palette="muted",

x_order=budget["detail"].tolist())

plt.xticks(rotation=>90)

plt.show()

e29ab306afade0d6106b9e086c0a014d.png

如你所见,为了阅读我不得不使用matplotlib旋转x轴标题.从外观上来看,显示非常不错.理想情况下,我想格式化y轴刻度,但是在不引入matplotlib的plt.yticks的情况下,我不知道如果做到这一点.

ggplot

(责任编辑:ioter)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值