Python可視化庫

 轉自小小蒲公英原文用Python可視化庫html

現現在大數據已人盡皆知,但在這個信息大爆炸的時代裏,空有海量數據是無實際使用價值,更不要說幫助管理者進行業務決策。那麼數據有什麼價值呢?用什麼樣的手段才能把數據的價值直觀而清晰的表達出來?
答案是要提供像人眼同樣的直覺的、交互的和反應靈敏的可視化環境。數據可視化將技術與藝術完美結合,藉助圖形化的手段,清晰有效地傳達與溝通訊息,直觀、形象地顯示海量的數據和信息,並進行交互處理。
數據可視化的應用十分普遍,幾乎能夠應用於天然科學、工程技術、金融、通訊和商業等各類領域。下面咱們基於Python,簡單地介紹一下適用於各個領域的幾個實用的可視化庫,快速帶你入門!!
python

1.matplotlib

Matplotlib是一個Python 2維繪圖庫,已經成爲python中公認的數據可視化工具,經過Matplotlib你能夠很輕鬆地畫一些或簡單或複雜地圖形,幾行代碼便可生成線圖、直方圖、功率譜、條形圖、錯誤圖、散點圖等等。
對於一些簡單的繪圖,特別是與IPython結合使用時,pyplot模塊提供了一個matlab接口。你能夠經過面向對象的接口或經過一些MATLAB的函數來更改控制行樣式、字體屬性、軸屬性等。
linux

 

安裝:git

  • linux系統

方法一:github

sudo apt-get install python-dev web

sudo apt-get install python-matplotlibredis

方法二:算法

pip install matplotlib json

  • windows系統

先下載對應的安裝包pyprojmatplotlib
打開Anaconda Prompt,輸入安裝包所在路徑,而後分別輸入bootstrap

pip install pyproj 1.9.5.1 cp36 cp36m win_amd64.whl #輸入下載的pyproj文件名

pip install matplotlib_tests‑2.1.0‑py2.py3‑none‑any.whl

  • mac os系統

方法一:

pip install matplotlib

方法二:

sudo curl -O https://bootstrap.pypa.io/get-pip.py

sudo python get-pip.py

快速入門

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

#產生隨機數
np.random.seed(19680801)

# 定義數據的分佈特徵
mu = 100  
sigma = 15   
x = mu + sigma * np.random.randn(437)

num_bins = 50

fig, ax = plt.subplots()

n, bins, patches = ax.hist(x, num_bins, normed=1)

# 添加圖表元素
y = mlab.normpdf(bins, mu, sigma)
ax.plot(bins, y, '--')
ax.set_xlabel('Smarts')
ax.set_ylabel('Probability density')
ax.set_title(r'Histogram of IQ: $\mu=100$, $\sigma=15$')

# 圖片展現與保存
fig.tight_layout()
plt.savefig("Histogram.png")
plt.show()

運行結果

更多matplotlib的基礎語法,可參考python可視化--matplotlib

 

2.Seaborn

Seaborn是基於matplotlib產生的一個模塊,專攻於統計可視化,能夠和pandas進行無縫連接,使初學者更容易上手。相對於matplotlib,Seaborn語法更簡潔,二者關係相似於numpy和pandas之間的關係。

 

安裝:

linux系統:

sudo pip install seaborn

window系統:

pip install seaborn

 

快速入門

import seaborn as sns

sns.set(style="ticks")
from matplotlib import pyplot

# 加載數據集
tips = sns.load_dataset("tips")


# 繪圖
sns.boxplot(x="day", y="total_bill", hue="sex", data=tips, palette="PRGn")
sns.despine(offset=10, trim=True)
 

#圖片展現與保存
pyplot.savefig("GroupedBoxplots.png")
pyplot.show()

 

運行結果:

 

 

3.HoloViews

HoloViews是一個開源的Python庫,能夠用很是少的代碼行中完成數據分析和可視化,除了默認的matplotlib後端外,還添加了一個Bokeh後端。Bokeh提供了一個強大的平臺,經過結合Bokeh提供的交互式小部件,可使用HTML5 canvas和WebGL快速生成交互性和高維可視化,很是適合於數據的交互式探索。

 

安裝:

 

方法一:

pip install HoloViews

 

方法二:

conda install -c ioam/label/dev holoviews

 

方法三:

git clone git://github.com/ioam/holoviews.git

cd holoviews

pip install -e

 

方法四:

下載安裝(https://pypi.python.org/pypi/holoviews)

 

快速入門

import numpy as np

import holoviews as hv

 

#調用bokeh

hv.extension('bokeh')

 

#數據輸入

frequencies = [0.5, 0.75, 1.0, 1.25]

 

#定義曲線

def sine_curve(phase, freq):

    xvals = [0.1* i for i in range(100)]

    return hv.Curve((xvals, [np.sin(phase+freq*x) for x in xvals]))

 

# 調用函數,輸出圖像

dmap = hv.DynamicMap(sine_curve, kdims=['phase', 'frequency'])

dmap.redim.range(phase=(0.5,1)).redim.range(frequency=(0.5,1.25))

運行結果:

 

 

4.Altair

Altair是Python的一個公認的統計可視化庫。它的API簡單、友好、一致,並創建在強大的vega - lite(交互式圖形語法)之上。Altair API不包含實際的可視化呈現代碼,而是按照vega - lite規範發出JSON數據結構。由此產生的數據能夠在用戶界面中呈現,這種優雅的簡單性產生了漂亮且有效的可視化效果,且只需不多的代碼。 
數據源是一個DataFrame,它由不一樣數據類型的列組成。DataFrame是一種整潔的格式,其中的行與樣本相對應,而列與觀察到的變量相對應。數據經過數據轉換映射到使用組的視覺屬性(位置、顏色、大小、形狀、面板等)。

 

安裝

 

方法一:

pip install Altair

 

方法二:

conda install altair --channel conda-forge


 

快速入門

import altair as alt

 

# 加載數據集

cars = alt.load_dataset('cars')

 

#繪圖

alt.Chart(cars).mark_point().encode(

    x='Horsepower',

    y='Miles_per_Gallon',

    color='Origin',

)

 

運行結果:

 

 

 

5.PyQtGraph

PyQtGraph是在PyQt4 / PySide和numpy上構建的純 python的GUI圖形庫。它主要用於數學,科學,工程領域。儘管PyQtGraph徹底是在python中編寫的,但它自己就是一個很是有能力的圖形系統,能夠進行大量的數據處理,數字運算;使用了Qt的GraphicsView框架優化和簡化了工做流程,實現以最少的工做量完成數據可視化,且速度也很是快。

 

卡片的背景色須要調出佈局工具欄來設置
每一個卡片均可以嵌套插入圖片或其它模板

安裝

 

方法一

pip install PyQtGraph

 

方法二

下載安裝(http://www.pyqtgraph.org/)

 

快速入門

import pyqtgraph as pg

from pyqtgraph.Qt import QtGui, QtCore

import numpy as np

 

#建立一個繪圖區

win = pg.plot()

win.setWindowTitle('pyqtgraph example: FillBetweenItem')

win.setXRange(-10, 10)

win.setYRange(-10, 10)

 

#曲線

N = 200

x = np.linspace(-10, 10, N)

gauss = np.exp(-x**2 / 20.)

mn = mx = np.zeros(len(x))

curves = [win.plot(x=x, y=np.zeros(len(x)), pen='k') for i in range(4)]

brushes = [0.5, (100, 100, 255), 0.5]

fills = [pg.FillBetweenItem(curves[i], curves[i+1], brushes[i]) for i in range(3)]

for f in fills:

    win.addItem(f)

 

def update():

    global mx, mn, curves, gauss, x

    a = 5 / abs(np.random.normal(loc=1, scale=0.2))

    y1 = -np.abs(a*gauss + np.random.normal(size=len(x)))

    y2 =  np.abs(a*gauss + np.random.normal(size=len(x)))

   

    s = 0.01

    mn = np.where(y1<mn, y1, mn) * (1-s) + y1 * s

    mx = np.where(y2>mx, y2, mx) * (1-s) + y2 * s

    curves[0].setData(x, mn)

    curves[1].setData(x, y1)

    curves[2].setData(x, y2)

    curves[3].setData(x, mx)

   

#時間軸

timer = QtCore.QTimer()

timer.timeout.connect(update)

timer.start(30)

 

 

#啓動Qt

if __name__ == '__main__':

    import sys

    if (sys.flags.interactive != 1) or not hasattr(QtCore, 'PYQT_VERSION'):

        QtGui.QApplication.instance().exec_() 

運行結果:

 

 

6.ggplot

ggplot是基於R的ggplot2和圖形語法的Python的繪圖系統,實現了更少的代碼繪製更專業的圖形。 
它使用一個高級且富有表現力的API來實現線,點等元素的添加,顏色的更改等不一樣類型的可視化組件的組合或添加,而不須要重複使用相同的代碼,然而這對那些試圖進行高度定製的的來講,ggplot並非最好的選擇,儘管它也能夠製做一些很是複雜、好看的圖形。 
ggplot與pandas緊密聯繫。若是你打算使用ggplot,最好將數據保存在DataFrames中。

 

安裝:

linux系統

pip install numpy

 

pip install scipy

 

pip install statsmodels

 

pip install ggplot

window系統

下載ggplot安裝包(https://www.lfd.uci.edu/~gohlke/pythonlibs/#ggplot)

而後運行

pip install ggplot‑0.11.5‑py2.py3‑none‑any.whl

 

快速入門

from ggplot import *

 

ggplot(aes(x='date', y='beef', ymin='beef - 1000', ymax='beef + 1000'), data=meat) + \

    geom_area() + \

    geom_point(color='coral')

 

運行結果:

 

 

7.Bokeh

Bokeh是一個Python交互式可視化庫,支持現代化web瀏覽器展現(圖表能夠輸出爲JSON對象,HTML文檔或者可交互的網絡應用)。它提供風格優雅、簡潔的D3.js的圖形化樣式,並將此功能擴展到高性能交互的數據集,數據流上。使用Bokeh能夠快速便捷地建立交互式繪圖、儀表板和數據應用程序等。 
Bokeh能與NumPy,Pandas,Blaze等大部分數組或表格式的數據結構完美結合。

 

安裝:

 

方法一:若是有配置anaconda的話使用如下命令(推薦)

conda install bokeh

 

方法二:

pip install numpy

 

pip install pandas

 

pip install redis

 

pip install bokeh

 

快速入門

from bokeh.plotting import figure, output_file, show

 

# 建立圖

p = figure(plot_width=300, plot_height=300, tools="pan,reset,save")

 

# 畫圓

p.circle([1, 2.5, 3, 2], [2, 3, 1, 1.5], radius=0.3, alpha=0.5)

 

# 定義輸出文件格式

output_file("foo.html")

 

# 圖片展現

show(p) 

運行結果:

 

 

 

8.pygal

pygal是一種開放標準的矢量圖形語言,它基於XML(Extensible Markup Language),能夠生成多個輸出格式的高分辨率Web圖形頁面,還支持給定數據的html表導出。用戶能夠直接用代碼來描繪圖像,能夠用任何文字處理工具打開SVG圖像,經過改變部分代碼來使圖像具備交互功能,而且能夠插入到HTML中經過瀏覽器來觀看。

 

安裝:

linux系統

pip install pygal

window系統

命令相似於

python -m pip install --user pygal==1.7

mac  os系統

命令相似於

 

方法一:

pip install --user pygal==1.7

 

方法二:

pip install git+https://github.com/vispy/vispy.git

 

快速入門

import pygal

 

#聲明圖表類型

bar_chart = pygal.StackedBar()

 

#繪圖

bar_chart.add('Fibonacci', [0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55])

bar_chart.add('Padovan', [1, 1, 1, 2, 2, 3, 4, 5, 7, 9, 12])

 

#保存圖片

bar_chart.render_to_png('bar1.png')

 

運行結果:

 

 

9.VisPy

VisPy是一個用於交互式科學可視化的Python庫,快速、可伸縮、且易於使用,是一個高性能的交互式2維, 3維數據可視化庫,利用了現代圖形處理單元(gpu)的計算能力,經過OpenGL庫來顯示很是大的數據集。

 

 


安裝

pip install VisPy

 

快速入門

from vispy.plot import Fig

 

#調用類(Fig)

fig = Fig()

 

#建立PlotWidget

ax_left = fig[0, 0]

ax_right = fig[0, 1]

 

#繪圖

import numpy as np

data = np.random.randn(2, 3)

ax_left.plot(data)

ax_right.histogram(data[1])

 

運行結果

 

 

10.NetworkX

NetworkX是一個Python包,用於建立、操縱和研究複雜網絡的結構、以及學習複雜網絡的結構、功能及其動力學。

NetworkX提供了適合各類數據結構的圖表、二合字母和多重圖,還有大量標準的圖算法,網絡結構和分析措施,能夠產生隨機網絡、合成網絡或經典網絡,且節點能夠是文本、圖像、XML記錄等,並提供了一些示例數據(如權重,時間序列)。

NetworkX測試的代碼覆蓋率超過90%,是一個多樣化,易於教學,能快速生成圖形的Python平臺。

 

 

安裝

 

方法一:

pip install networkx

 

方法二:

下載安裝(https://pypi.python.org/pypi/networkx/2.0)

快速入門

import matplotlib.pyplot as plt

import networkx as nx

import numpy.linalg

 

#生成隨機數

n = 1000 

m = 5000 

G = nx.gnm_random_graph(n, m)

 

#定義數據分佈特徵

L = nx.normalized_laplacian_matrix(G)

e = numpy.linalg.eigvals(L.A)

 

#繪圖並顯示

plt.hist(e, bins=100) 

plt.xlim(0, 2) 

plt.show()

 

運行結果

 

 

 

11.Plotly

Plotly的Python graphing library在網上提供了交互式的、公開的,高質量的圖表集,可與R、python、matlab等軟件對接。它擁有在別的庫中很難找到的幾種圖表類型,如等值線圖,樹形圖和三維圖表等,圖標類型也十分豐富,申請了API密鑰後,能夠一鍵將統計圖形同步到雲端。但美中不足的是,打開國外網站會比較費時,且一個帳號只能建立25個圖表,除非你升級或刪除一些圖表。

 

 

 

安裝:

pip install plotly

 

簡單入門

import plotly.plotly as py

import plotly.graph_objs as go

 

trace1 = go.Scatter(

    x=[0, 1, 2, 3, 4, 5],

    y=[1.5, 1, 1.3, 0.7, 0.8, 0.9]

)

trace2 = go.Bar(

    x=[0, 1, 2, 3, 4, 5],

    y=[1, 0.5, 0.7, -1.2, 0.3, 0.4]

)

 

data = [trace1, trace2]

py.iplot(data, filename='bar-line')

 

運行結果

 

 


 

 

12.geoplotlib

Basemap和Cartopy包支持多個地理投影,並提供一些可視化效果,包括點圖、熱圖、等高線圖和形狀文件。PySAL是一個由Python編寫的空間分析函數的開源庫,它提供了許多基本的工具,主要用於形狀文件。可是,這些庫不容許用戶繪製地圖貼圖,而且對自定義可視化、交互性和動畫的支持有限。 
geoplotlib是python的一個用於地理數據可視化和繪製地圖的工具箱,並提供了一個原始數據和全部可視化之間的基本接口,支持在純python中開發硬件加速的交互式可視化,並提供點映射、內核密度估計、空間圖、泰森多邊形圖、形狀文件和許多更常見的空間可視化的實現。除了爲經常使用的地理數據可視化提供內置的可視化功能外,geoplotlib還容許經過定義定製層來定義複雜的數據可視化(繪製OpenGL,如分數、行和具備高性能的多邊形),建立動畫。 

 

安裝:

pip install geoplotlib

 

快速入門

from geoplotlib.layers import DelaunayLayer

import geoplotlib

from geoplotlib.utils import read_csv, BoundingBox

 

data = read_csv('data/bus.csv')

geoplotlib.delaunay(data, cmap='hot_r')

geoplotlib.set_bbox(BoundingBox.DK)

geoplotlib.set_smoothing(True)

geoplotlib.show()

 

運行結果

 


  

13.folium

folium是一個創建在Python系統之上的js庫,能夠很輕鬆地將在Python中操做的數據可視化爲交互式的單張地圖,且將緊密地將數據與地圖聯繫在一塊兒,可自定義箭頭,網格等HTML格式的地圖標記。該庫還附有一些內置的地形數據。

 

 

 

安裝

 

方法一:

pip install folium

 

方法二:

conda install folium

 

方法三:

下載安裝(https://pypi.python.org/pypi/folium/0.5.0)

 

快速入門

import folium

 

#肯定經緯度

m = folium.Map(location=[45.5236, -122.6750])

m

 

運行結果

 

 

 

14.Gleam

Gleam容許你只利用Python構建數據的交互式,生成可視化的網絡應用。無需具有HTML CSS或JaveScript知識,就能使用任一種Python可視化庫控制輸入。當你建立一個圖表的時候,你能夠在上面加上一個域,讓任何人均可以實時地玩轉你的數據,讓你的數據更通俗易懂。

 

安裝:

pip install Gleam

 

快速入門

from wtforms import fields

from ggplot import *

from gleam import Page, panels

 

#定義繪圖函數

class ScatterInput(panels.InputPanel):

    title = fields.StringField(label="Title of plot:")

    yvar = fields.SelectField(label="Y axis",

                              choices=[("beef", "Beef"),

                                       ("pork", "Pork")])

    smoother = fields.BooleanField(label="Smoothing Curve")

 

class ScatterPlot(panels.PlotPanel):

    name = "Scatter"

 

    def plot(self, inputs):

        p = ggplot(meat, aes(x='date', y=inputs.yvar))

        if inputs.smoother:

            p = p + stat_smooth(color="blue")

        p = p + geom_point() + ggtitle(inputs.title)

        return p

 

class ScatterPage(Page):

    input = ScatterInput()

    output = ScatterPlot()

 

#運行

ScatterPage.run()

 

運行結果

 

 


 

15.vincent

Vincent是一個很酷的可視化工具,它以Python數據結構做爲數據源,而後把它翻譯成Vega可視化語法,而且可以在d3js上運行。這讓你可使用Python腳原本建立漂亮的3D圖形來展現你的數據。Vincent底層使用Pandas和DataFrames數據,而且支持大量的圖表—-條形圖、線圖、散點圖、熱力圖、堆條圖、分組條形圖、餅圖、圈圖、地圖等等。

 

 

安裝

pip install Vincent

 

快速入門

import vincent

bar = vincent.Bar(multi_iter1['y1'])

bar.axis_titles(x='Index', y='Value')

bar.to_json('vega.json')

 

運行結果

 

 


 

 

16.mpld3

mpld3基於python的graphing library和D3js,聚集了Matplotlib流行的項目的JavaScript庫,用於建立web交互式數據可視化。經過一個簡單的API,將matplotlib圖形導出爲HTML代碼,這些HTML代碼能夠在瀏覽器內使用。

 

 

安裝

 

方法一:

pip install mpld3

 

方法二:

下載安裝(https://pypi.python.org/pypi/mpld3)

 

快速入門

import matplotlib.pyplot as plt

import numpy as np

import mpld3

from mpld3 import plugins

 

fig, ax = plt.subplots()

 

x = np.linspace(-2, 2, 20)

y = x[:, None]

X = np.zeros((20, 20, 4))

 

X[:, :, 0] = np.exp(- (x - 1) ** 2 - (y) ** 2)

X[:, :, 1] = np.exp(- (x + 0.71) ** 2 - (y - 0.71) ** 2)

X[:, :, 2] = np.exp(- (x + 0.71) ** 2 - (y + 0.71) ** 2)

X[:, :, 3] = np.exp(-0.25 * (x ** 2 + y ** 2))

 

im = ax.imshow(X, extent=(10, 20, 10, 20),

               origin='lower', zorder=1, interpolation='nearest')

fig.colorbar(im, ax=ax)

 

ax.set_title('An Image', size=20)

 

plugins.connect(fig, plugins.MousePosition(fontsize=14))

 

mpld3.show()

 

運行結果

 

 


 

 

17.python-igraph

Python界面的igraph高性能圖形庫,主要針對複雜的網絡研究和分析。

 

 

 

 

 

安裝

方法一:

pip install python-igraph

方法二:

下載安裝(https://pypi.python.org/pypi/python-igraph)

快速入門

from igraph import *

 

layout = g.layout("kk")

plot(g, layout = layout)

 

運行結果

 

 

 


 

18.missingno

沒有高質量的數據,就沒有高質量的數據挖掘結果,當咱們作監督學習算法,不免會碰到混亂的數據集,缺失的值,當缺失比例很小時,可直接對缺失記錄進行捨棄或進行手工處理,missingno提供了一個小型的靈活的、易於使用的數據可視化和實用工具集,用圖像的方式讓你可以快速評估數據缺失的狀況,而不是在數據表裏面寸步難行。你能夠根據數據的完整度對數據進行排序或過濾,或者根據熱度圖或樹狀圖來考慮對數據進行修正。
missingno 是基於matplotlib建造的一個模塊,因此它出圖速度很快,而且可以靈活的處理pandas數據。

 

 

安裝:

 

方法一:

pip install missingno

 

方法二:

下載安裝(https://pypi.python.org/pypi/missingno/)

 

快速入門

import missingno as msno

import pandas as pd

import pandas_datareader.data as web

import numpy as np

p=print

 

save_loc = '/YOUR/PROJECT/LOCATION/'

logo_loc = '/YOUR/WATERMARK/LOCATION/'

 

# get index and fed data

 

f1 = 'USREC' # recession data from FRED

 

start = pd.to_datetime('1999-01-01')

end = pd.datetime.today()

 

mkt = '^GSPC'

MKT = (web.DataReader([mkt,'^VIX'], 'yahoo', start, end)['Adj Close']

      .resample('MS') # month start b/c FED data is month start

       .mean()

       .rename(columns={mkt:'SPX','^VIX':'VIX'})

       .assign(SPX_returns=lambda x: np.log(x['SPX']/x['SPX'].shift(1)))

       .assign(VIX_returns=lambda x: np.log(x['VIX']/x['VIX'].shift(1)))

       )

 

data = (web.DataReader([f1], 'fred', start, end)

        .join(MKT, how='outer')

        .dropna())

 

p(data.head())

p(data.info())

msno.matrix(data)

 

運行結果

 

 

 


 

 

19.Mayavi2

Mayavi2是一個通用的、跨平臺的三維科學數據可視化工具。能夠在二維和三維空間中顯示標量、向量和張量數據。可經過自定義源、模塊和數據過濾器輕鬆擴展。Mayavi2也能夠做爲一個繪圖引擎,生成matplotlib或gnuplot腳本,也能夠做爲其餘應用程序的交互式可視化的庫,將生成的圖片嵌入到其餘應用程序中。

 

 

 

安裝

pip install mayavi

 

快速入門

import numpy

from mayavi import mlab

 

def lorenz(x, y, z, s=10., r=28., b=8. / 3.):

    """The Lorenz system."""

    u = s * (y - x)

    v = r * x - y - x * z

    w = x * y - b * z

    return u, v, w

 

# 取樣.

x, y, z = numpy.mgrid[-50:50:100j, -50:50:100j, -10:60:70j]

u, v, w = lorenz(x, y, z)

fig = mlab.figure(size=(400, 300), bgcolor=(0, 0, 0))

 

# 用合適的參數畫出軌跡的流動.

f = mlab.flow(x, y, z, u, v, w, line_width=3, colormap='Paired')

f.module_manager.scalar_lut_manager.reverse_lut = True

f.stream_tracer.integration_direction = 'both'

f.stream_tracer.maximum_propagation = 200

 

# 提取特徵並繪製

src = f.mlab_source.m_data

e = mlab.pipeline.extract_vector_components(src)

e.component = 'z-component'

zc = mlab.pipeline.iso_surface(e, opacity=0.5, contours=[0, ],

            color=(0.6, 1, 0.2))

# 背景設置

zc.actor.property.backface_culling = True

 

# 圖片展現

mlab.view(140, 120, 113, [0.65, 1.5, 27])

mlab.show()

 

運行結果(實際上是動態的很炫,就是文件太大了)

 

 

 

 

20.Leather

Leather一種可讀且用戶界面友好的API,新手也能快速掌握。圖像成品很是基礎,適用於全部的數據類型,針對探索性圖表進行了優化,產生與比例無關的SVG圖,這樣在你調整圖像大小的時候就不會損失圖像質量 

 

 

安裝

 

方法一:

pip install leather

 

方法二:

下載安裝(http://leather.readthedocs.io/en/latest/index.html)

 

快速入門

import csv

import leather

 

with open('gii.csv') as f:

    reader = csv.reader(f)

    next(reader)

    data = list(reader)[:10]

 

    for row in data:

        row[1] = float(row[1]) if row[1] is not None else None

 

chart = leather.Chart('Data from CSV reader')

chart.add_bars(data, x=1, y=0)

chart.to_svg('csv_reader.svg')

 

運行結果:

 

 

 

 

結論

在 Python 中,將數據可視化有多種選擇,所以什麼時候選用何種方案才變得極具挑戰性。 

若是你想作一些專業的統計圖表,我推薦你使用Seaborn,Altair;

數學,科學,工程領域的學者就選擇PyQtGraph,VisPy,Mayavi2

網絡研究和分析方面,NetworkX,python-igraph會是一個不錯的選擇。 

地理投影就選geoplotlib,folium

評估數據缺失就選missingno;

有了HoloViews不再用爲高維圖形犯愁;

若是你不喜歡花俏的修飾,那就選擇Leather。 

若是你是一名新手但有MATLAB基礎,matplotlib會很好上手;有R基礎的就選ggplot;

若是你是新手或懶癌晚期者,Plotly將會是一大福音,它提供了大量圖表集可供你選擇與使用。

相關文章
相關標籤/搜索