[工具]数据可视化的几种武器

作为Python用户,在进行数据可视化时可能用到的工具包括:matplotlib,seaborn,plotly,Vega-Lite以及Altair。其中Vega-Lite是基于JSON进行图形表达的独立语言标准,其余均为Python内的软件包。

matplotlib

这是Python中最基础也是最重要的作图软件包,为许多其他作图软件树立了标杆,实际上也提供了一种描述图形的语言。

下面是matplotlib官方示例中绘制PSD(Power Spectral Density)的示例代码:

import matplotlib.pyplot as plt
import numpy as np
import matplotlib.mlab as mlab
import matplotlib.gridspec as gridspec

# Fixing random state for reproducibility
np.random.seed(19680801)

dt = 0.01
t = np.arange(0, 10, dt)
nse = np.random.randn(len(t))
r = np.exp(-t / 0.05)

cnse = np.convolve(nse, r) * dt
cnse = cnse[:len(t)]
s = 0.1 * np.sin(2 * np.pi * t) + cnse

plt.subplot(211)
plt.plot(t, s)
plt.subplot(212)
plt.psd(s, 512, 1 / dt)

plt.show()

绘制出的图像如下:

seaborn

seaborn 在 matplotlib 的基础上,进行了更高级的封装,使得作图更加方便快捷,且图形风格更“好看”。

很多图形,如果用matplotlib作图,需要声明坐标轴、重叠关系等细节事项,而使用seaborn常只需要应用默认的设置即可。

以下是seaborn绘制调色图的示例:

import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt

sns.set(style="dark")
rs = np.random.RandomState(50)

# Set up the matplotlib figure
f, axes = plt.subplots(3, 3, figsize=(9, 9), sharex=True, sharey=True)

# Rotate the starting point around the cubehelix hue circle
for ax, s in zip(axes.flat, np.linspace(0, 3, 10)):

    # Create a cubehelix colormap to use with kdeplot
    cmap = sns.cubehelix_palette(start=s, light=1, as_cmap=True)

    # Generate and plot a random bivariate dataset
    x, y = rs.randn(2, 50)
    sns.kdeplot(x, y, cmap=cmap, shade=True, cut=5, ax=ax)
    ax.set(xlim=(-3, 3), ylim=(-3, 3))

f.tight_layout()

图片如下:

笔者也常用它画热力图:

import matplotlib.pyplot as plt
import seaborn as sns
sns.set()

# Load the example flights dataset and convert to long-form
flights_long = sns.load_dataset("flights")
flights = flights_long.pivot("month", "year", "passengers")

# Draw a heatmap with the numeric values in each cell
f, ax = plt.subplots(figsize=(9, 6))
sns.heatmap(flights, annot=True, fmt="d", linewidths=.5, ax=ax)

效果如下:

plotly

plotly的定位是图形库,在绘制复杂图形时缺少了matplotlib那样的准确表达能力。

plotly的优点包括且不限于:

  • 可生成可交互图形和动画效果
  • 其地图绘制功能可用性较强
  • 生成的3D图形比较好看

不过它的麻烦之处在于,由于生成的是交互图形,一般需要在Jupyter Notebook中打开。

从官网撸下来一个地图绘图代码如下:

from urllib.request import urlopen
import json
with urlopen('https://raw.githubusercontent.com/plotly/datasets/master/geojson-counties-fips.json') as response:
    counties = json.load(response)

import pandas as pd
df = pd.read_csv("https://raw.githubusercontent.com/plotly/datasets/master/fips-unemp-16.csv",
                   dtype={"fips": str})

import plotly.express as px

fig = px.choropleth_mapbox(df, geojson=counties, locations='fips', color='unemp',
                           color_continuous_scale="Viridis",
                           range_color=(0, 12),
                           mapbox_style="carto-positron",
                           zoom=3, center = {"lat": 37.0902, "lon": -95.7129},
                           opacity=0.5,
                           labels={'unemp':'unemployment rate'}
                          )
fig.update_layout(margin={"r":0,"t":0,"l":0,"b":0})
fig.show()

图片效果如下:

3D作图的示例如下:

import plotly.graph_objects as go
import numpy as np

# Helix equation
t = np.linspace(0, 20, 100)
x, y, z = np.cos(t), np.sin(t), t

fig = go.Figure(data=[go.Scatter3d(
    x=x,
    y=y,
    z=z,
    mode='markers',
    marker=dict(
        size=12,
        color=z,                # set color to an array/list of desired values
        colorscale='Viridis',   # choose a colorscale
        opacity=0.8
    )
)])

# tight layout
fig.update_layout(margin=dict(l=0, r=0, b=0, t=0))
fig.show()

效果如下:

Vega-Lite和Altair

Vega是基于JSON语言的一套可交互图形描述及生成软件,Vega-Lite则是基于Vega进行的进一步语法封装。

Vega生成的图片示例:

由于Vega使用了独立的软件,故在Python中使用需要调用封装好的接口,即Altair。以上图片在Altair中实现的代码如下:

import altair as alt
from vega_datasets import data

source = data.iris()

alt.Chart(source).mark_circle().encode(
    alt.X('sepalLength', scale=alt.Scale(zero=False)),
    alt.Y('sepalWidth', scale=alt.Scale(zero=False, padding=1)),
    color='species',
    size='petalWidth'
)

由于同样是交互图形,所以Altair也要在Jupyter Notebook中调用。

其他软件包也很有趣

比方说,笔者在网络上发现了一个手绘风格的可视化包——cutecharts。

它生成的图片是这个样子:

好Q~

原文地址:https://www.cnblogs.com/teaforinvestors/p/12233547.html

时间: 2024-10-14 01:14:50

[工具]数据可视化的几种武器的相关文章

Python数据可视化的四种简易方法

摘要: 本文讲述了热图.二维密度图.蜘蛛图.树形图这四种Python数据可视化方法. 数据可视化是任何数据科学或机器学习项目的一个重要组成部分.人们常常会从探索数据分析(EDA)开始,来深入了解数据,并且创建可视化确实有助于让问题更清晰和更容易理解,尤其是对于那些较大的高维度数据集.在项目结束的时候,能够以清晰的.简洁的和令人信服的方式呈现最终结果,这是非常重要的,让你的用户能够理解和明白. 你可能已经看过了我之前的文章<5种快速和简单的Python数据可视化方法(含代码)>(5 Quick

Python进行数据可视化的9种常见方法,总有一种是你要用的

其实利用 Python 可视化数据并不是很麻烦,因为 Python 中有两个专用于可视化的库 matplotlib 和 seaborn 能让我们很容易的完成任务. 我们用 Python 可以做出哪些可视化图形? 当你给别人一个表格比如: 这个表给别人看起来,既不舒服,也不好观看.最最最最最最重要的一点就是low! 在学习过程中有什么不懂得可以加我的 python学习交流扣扣qun,784758214 群里有不错的学习视频教程.开发工具与电子书籍. 与你分享python企业当下人才需求及怎么从零基

用Python进行数据可视化的10种方法

导入数据集 1.直方图 2.箱线图 3.小提琴图 4.条形图 5.折线图 6.堆积柱形图 7.散点图 8.气泡图 9.饼图 10.热图:你可以尝试绘制基于两个变量的热图,如X轴为性别,Y轴为BMI,数据点为销售值.

[原创.数据可视化系列之七]阿里竞赛作品技术展示

今年9月份,数据秀(dataxiu.com)团队参与阿里和国家公共气象服务中心主办,浙江大学和阿里云承办的“公益云图数据可视化创新大赛”. “公益云图数据可视化创新大赛”将融合开放气象.空气质量监测.企业排放和公共环境等领域的数据的,基于阿里云天池大数据平台开发一批关注环境公益的可视化技术,借助阿里云的计算能力及可视化工具,挖掘复杂异构多源数据之间的关联关系,以数据可视化的方式呈现给决策者和公众,共同促进环境治理和绿色产业创新. 数据秀团队开发的“公益云图”作品使用了美国国家环境预报中心GFS(

浏览器端技术体系概览 -- 前端开发的七种武器

科普文一则,说说我对前端技术体系(也称浏览器端技术体系)的认识,希望能让更多人了解前端,也希望能借此丰富前端开发的大局观. 去年我写了网站性能优化系列文章,看过的朋友会知道,这类文章重点并非介绍各种具体的优化技巧,而是在关注发掘这些优化点的思路和方法.然后介绍给大家多种检测手段去发现问题,进而有目标的解决问题.所有这些需要我们对有网页整个生命周期有清晰的认识,对网页中各种技术极其相互结合的方式有明确的认知.这就回归到一个更本质的问题:浏览器端技术体系是怎样的. 想用三言两语说清前端技术不大可能,

基于HTML5的数据可视化实现方法解读

现在在大数据的带领下,数据可视化越来越突出,能够清楚的分析出自己想要的数据,这也是我们现在最求的数据可视化方法,那么实现HTML5的数据可视化方法有哪些?这都是我们值得研究的东西,数据可以给我们带来敏感的市场未来发展,同时也能够实时分别不同数据效果. HTML5为数据可视化提供了新的实现方法.本文对HTML5在健康数据可视化在PC及部分移动终端上的应用进行研究.使用HTML5中的Canvas和SVG实现的数据可视化方法基于浏览器的支持,具有很好的平台兼容性 可视化(Visualization)是

如何设计淘宝天猫这种成功而有价值的大数据可视化?

大数据人工智能淘宝天猫双十一幕后:实时可视化查询大屏 这张图片来源于天猫双十一数据直播,来自大数据可视化的魅力 [what]什么是数据可视化? 塔夫特所说,"图形表现数据.实际上比传统的统计分析法更加精确和有启发性."对于广大的编辑.设计师.运营分析师.大数据研究者等等都需要从不同维度.不同层面.不同粒度的数据处理统计中,借助图表和信息图的方式为用户(只获得信息).阅读者(消费信息)及管理者(利用信息进行管理和决策)呈现不同于表格式的分析结果.数据可视化技术综合运用计算机图形学.图像.

55种开源数据可视化工具简介

55种开源数据可视化工具简介 雪姬 2015-04-21 11:47:56 数据可视化 评论(2)   数据时代数据可视化成为理解和表达数据的有效甚至是唯一的手段. 一共56个,盘点最实用的大数据可视化分析工具 工欲善其事必先利其器,本文对55个流行的数据可视化工具开源协议,主页,文档,案例等资源的进行简单介绍,其中包括著名的D3.js,R,Gephi,Raphaël,Processing.js,Tableau Public,Google Chart Tools,Arbor.js等,资料来源ht

【55种开源数据可视化工具简介】

大数据时代数据可视化成为理解和表达数据的有效甚至是唯一的手段. 工欲善其事必先利其器,本文对55个流行的数据可视化工具开源协议,主页,文档,案例等资源的进行简单介绍,其中包括著名的D3.js,R,Gephi,Rapha?l,Processing.js,Tableau Public,Google Chart Tools,Arbor.js等,资料来源http://selection.datavisualization.ch/ 下面安照字母顺序进行介绍(已更新至第11个,未完待续--) 1 Arbor