1. 程式人生 > >10個對所有學科都有用的Python資料視覺化庫

10個對所有學科都有用的Python資料視覺化庫

A great overview of 10 useful Python data visualization tools. It covers some of the big ones, like matplotlib and Seaborn, but also explores some more obscure libraries, like Gleam, Leather, and missingno.

瀏覽一下Python包索引你會發現無論要畫什麼圖,都能找到相對的庫——從適用於眼球移動研究的GazeParser,到用於視覺化實時神經網路訓練過程的pastalog。有許多庫只完成非常特定的任務,也有許多可以用於更廣泛的領域。

今天我們會介紹一下10個適用於多個學科的Python資料視覺化庫,其中有名氣很大的也有鮮為人知的。在這裡我們提醒一下大家如果想輕鬆的在本地執行Python,可以使用Mode Python Notebooks

matplotlib

matplotlib 是Python視覺化程式庫的泰斗。經過十幾年它仍然是Python使用者最常用的畫相簿。它的設計和在1980年代被設計的商業化程式語言MATLAB非常接近。

由於 matplotlib 是第一個 Python 視覺化程式庫,有許多別的程式庫都是建立在它的基礎上或者直接呼叫它。比如pandasSeaborn就是matplotlib的外包,它們讓你能用更少的程式碼去呼叫 matplotlib的方法。

雖然用matplotlib可以很方便的得到資料的大致資訊,但是如果要更快捷簡單地製作可供發表的圖表就不那麼容易了。就像Chris Moffitt 在“Python視覺化工具簡介”中提到的一樣:“功能非常強大,也非常複雜。”

matplotlib 那有著強烈九十年代氣息的預設作圖風格也是被吐槽多年。即將發行的matplotlib 2.0 號稱會包含許多更時尚的風格。

Seaborn

Seaborn利用了matplotlib,用簡潔的程式碼來製作好看的圖表。Seaborn跟matplotlib最大的區別就是它的預設繪圖風格和色彩搭配都具有現代美感。由於Seaborn是構建在matplotlib的基礎上的,你需要了解matplotlib從而來調整Seaborn的預設引數。

ggplot

這裡寫圖片描述
Small multiples (ŷhat)

ggplot 基於R的一個作圖包 ggplot2, 同時利用了源於 《影象語法》(The Grammar of Graphics)中的概念。ggplot 跟 matplotlib 的不同之處是它允許你疊加不同的圖層來完成一幅圖。比如你可以從軸開始,然後加上點,加上線,趨勢線等等。雖然《影象語法》得到了“接近思維過程”的作圖方法的好評,但是習慣了matplotlib的使用者可能需要一些時間來適應這個新思維方式。

ggplot的作者提到 ggplot 並不適用於製作非常個性化的影象。它為了操作的簡潔而犧牲了影象複雜度。

ggplot is tightly integrated with pandas, so it’s best to store your data in a DataFrame when using ggplot.

ggplot跟pandas的整合度非常高,所以當你使用它的時候,最好將你的資料讀成 DataFrame。

Bokeh

這裡寫圖片描述
Interactive weather statistics for three cities (Continuum Analytics)

跟ggplot一樣, Bokeh 也是基於《圖形語法》的概念。但是跟ggplot不一樣的是,它完全基於Python而不是從R引用過來的。它的長處在於它能用於製作可互動,可直接用於網路的圖表。圖表可以輸出為JSON物件,HTML文件或者可互動的網路應用。Boken也支援資料流和實時資料。

Bokeh為不同的使用者提供了三種控制水平。最高的控制水平用於快速製圖,主要用於製作常用影象, 例如柱狀圖,盒狀圖,直方圖。中等控制水平跟matplotlib一樣允許你控制影象的基本元素(例如分佈圖中的點)。最低的控制水平主要面向開發人員和軟體工程師。它沒有預設值,你得定義圖表的每一個元素。

pygal

pygal 跟 Bokeh 和 Plotly 一樣,提供可直接嵌入網路瀏覽器的可互動影象。跟其他兩者的主要區別在於它可以將圖表輸出為SVG格式。如果你的資料量相對小,SVG就夠用了。但是如果你有成百上千的資料點,SVG的渲染過程會變得很慢。

由於所有的圖表都被封裝成了方法,而且預設的風格也很漂亮,用幾行程式碼就可以很容易地製作出漂亮的圖表。

Plotly

這裡寫圖片描述
Line plot (Plotly)

你也許聽說過線上製圖工具Plotly,但是你知道你可以通過Python notebook使用它麼?Plotly 跟 Bokeh 一樣致力於互動圖表的製作,但是它提供在別的庫中很難找到的幾種圖表型別,比如等值線圖樹形圖三維圖表

geoplotlib

geoplotlib 是一個用於製作地圖和地理相關資料的工具箱。你可以用它來製作多種地圖,比如等值區域圖, 熱度圖,點密度圖。你必須安裝 Pyglet (一個面向物件程式設計介面)來使用geoplotlib。 不過因為大部分Python的視覺化工具不提供地圖,有一個專職畫地圖的工具也是挺方便的。

Gleam

這裡寫圖片描述
Scatter plot with trend line (David Robinson)

Gleam 借用了R中 Shiny 的靈感。 它允許你只利用 Python 程式將你的分析變成可互動的網路應用,你不需要會用HTML CSS 或者 JaveScript。Gleam 可以使用任何一種 Python 的視覺化庫。當你建立一個圖表的時候,你可以在上面加上一個域,這樣使用者可以用它來對資料排序和過濾了。

missingno

缺失資料是永遠的痛。missingno 用影象的方式讓你能夠快速評估資料缺失的情況,而不是在資料表裡面步履維艱。你可以根據資料的完整度對資料進行排序或過濾,或者根據熱度圖或樹狀圖來考慮對資料進行修正。

Leather

這裡寫圖片描述
Chart grid with consistent scales (Christopher Groskopf)

Leather的最佳定義來自它的作者 Christopher Groskopf:“Leather 適用於現在就需要一個圖表並且對圖表是不是完美並不在乎的人。”它可以用於所以的資料型別然後生成SVG影象,這樣在你調整影象大小的時候就不會損失影象質量。這個庫很新,一些文件還沒有最後完成。影象成品非常基礎——但是這就是設計目標。

更多關於 Python 視覺化工具的精彩文章

網路上有許多關於 Python 視覺化工具的評測,下面是推薦文章:

相關推薦

10所有學科有用Python資料視覺

A great overview of 10 useful Python data visualization tools. It covers some of the big ones, like matplotlib and Seaborn, but a

python 資料視覺 matplotlib學習二 : 摺線圖使用顏色對映

        本節程式碼依賴上一節程式碼          顏色對映是一系列顏色,他們從起始顏色漸變到結束顏色,在視覺化中,顏色對映用於突出資料的規律,例如,你可能用較淺的顏色來顯示較小的值,並使用

Python資料視覺之密度圖的繪製

密度圖表現與資料值對應的邊界或域物件的一種理論圖形表示方法。一般用於呈現連續變數。 *摘自百度百科* 在電腦科學當中,資料的視覺化常常被提起。近日,在影象處理當中,需要統計圖片中的人流密度並繪製相應密度圖,於是小小研究一番。效果如下: 所有程式碼儲存在Github上。 首

python --資料視覺

python --資料視覺化   一、python -- pyecharts庫的使用 pyecharts--> 生成Echarts圖示的類庫 1、安裝: pip install pyecharts pip install pyecharts_snapshot &nbs

python --資料視覺(二)

一、NumPy 1、簡介:  官網連結:http://www.numpy.org/  NumPy是Python語言的一個擴充程式庫。支援高階大量的維度陣列與矩陣運算,此外也針對陣列運算提供大量的數學函式庫 2、基本功能: 快速高效的多維陣列物件ndarray 用於對陣列執行元素級計算以及直

Python資料視覺的四種簡易方法

摘要: 本文講述了熱圖、二維密度圖、蜘蛛圖、樹形圖這四種Python資料視覺化方法。 資料視覺化是任何資料科學或機器學習專案的一個重要組成部分。人們常常會從探索資料分析(EDA)開始,來深入瞭解資料,並且建立視覺化確實有助於讓問題更清晰和更容易理解,尤其是對於那些較大的高維度資料集。在專

Python資料視覺:2018年電影分析

本文轉載自:http://gkhelp.cn/1217.html 雙11已經過去,雙12即將來臨,離2018年的結束也就2個月不到,還記得年初立下的flag嗎? 完成了多少?相信很多人和我一樣,抱頭痛哭... 本次利用貓眼電影,實現對2018年的電影大資料進行分析。 網頁分

python資料視覺入門2

使用scatter()方法繪製散點圖 import matplotlib.pyplot as plt # 繪製一系列點 x_value = [1, 2, 3, 4, 5] y_value = [1, 4, 9, 16, 25] plt.scatter(x_value. y_value,

python資料視覺入門

一、繪製一個簡單的折線圖 import matplotlib.pyplot as plt # 提供一些輸入值 也可以隨意輸入一些數字 intput_values = [1, 2, 3, 4, 5] squares = [1, 4, 9, 16, 25] #輸入值的平方值 plt.plo

吳裕雄 資料探勘與分析案例實戰(5)——python資料視覺

# 餅圖的繪製# 匯入第三方模組import matplotlibimport matplotlib.pyplot as plt plt.rcParams['font.sans-serif']=['Simhei']plt.rcParams['axes.unicode_minus']=Falseziti =

4種更快更簡單實現Python資料視覺的方法

選自towardsdatascience,作者:George Seif,機器之心編譯,參與:Geek AI、劉曉坤。 熱力圖、二維密度圖、蜘蛛網圖和樹狀圖,這些視覺化方法你都用過嗎? 資料視覺化是資料科學或機器學習專案中十分重要的一環。通常,你需要在專案初期進行探索性的資料分析(EDA),從而對資

python資料視覺利器--pyecharts

 學視覺化就跟學彈吉他一樣,剛開始你會覺得自己彈出來的是噪音,也就有了在使用python視覺化的時候,總說,我擦,為啥別人畫的圖那麼溜: 【python視覺化系列】python資料視覺化利器--pyecharts echarts官網 一、前言 echarts是什麼?下面是來自官方的介紹

python資料視覺

使用scatter()繪製一系列點 import matplotlib.pyplot as plt x_values = [1, 2, 3, 4, 5] y_values = [1, 4, 9, 16, 25] plt.scatter(x_values, y_values

python資料視覺學習-直方圖

import numpy as np import matplotlib.pyplot as plt mu = 1000 sigma = 10 x = mu + sigma*np.random.rand

吳裕雄 python 資料視覺

import pandas as pd df = pd.read_csv("F:\\python3_pachongAndDatareduce\\data\\pandas data\\taobao_data.csv")print(df.head())data = df.drop(["寶貝","賣家"],axi

資料科學】Python資料視覺概述

注:很早之前就打算專門寫一篇與Python資料視覺化相關的部落格,對一些基本概念和常用技巧做一個小結。今天終於有時間來完成這個計劃了! 0. Python中常用的視覺化工具 Python在資料科學中的地位,不僅僅是因為numpy, scipy, pandas, scikit-learn這些高效易用

Python資料視覺—seaborn

Seaborn其實是在matplotlib的基礎上進行了更高階的API封裝,從而使得作圖更加容易,在大多數情況下使用seaborn就能做出很具有吸引力的圖。這裡例項採用的資料集都是seaborn提供的幾個經典資料集,dataset檔案可見於Github。 1  set_st

4種更快更簡單實現Python資料視覺的方法!

熱力圖、二維密度圖、蜘蛛網圖和樹狀圖,這些視覺化方法你都用過嗎? 資料視覺化是 資料科學 或 機器學習 專案中十分重要的一環。通常,你需要在專案初期進行探索性的 資料分析 (EDA),從而對資料有一定的瞭解,而且建立視覺化確實可以使分析的任務更清晰、更容易理解,特別是對於大規模的高維資料集。在專

Python資料視覺之matplotlib實踐chapter-01

""" Example 1.3.1: 函式plot() """ import matplotlib.pyplot as plt import numpy as np x = np.linspace(0.05,10,1000) # x = 0.05到10的等間距1000個點 y = np

Python資料視覺之matplotlib實踐chapter-02

""" Example 2.1: 函式bar() """ import matplotlib as mpl import matplotlib.pyplot as plt # 解決matplotlib無法顯示中文問題 mpl.rcParams['font.sans-serif']=['Sim