今天介紹Python當中十大可視化工具,每一個都獨具特色,驚艷一方。
Matplotlib
Matplotlib 是 Python 的一個繪圖庫,可以繪制出高質量的折線圖、散點圖、柱狀圖、條形圖等等。它也是許多其他可視化庫的基礎。
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0, 10, 100)
y = np.sin(x)
plt.plot(x, y)
plt.show()
Seaborn
Seaborn 是基于 Matplotlib 的 Python 數(shù)據(jù)可視化庫,專門用于繪制統(tǒng)計圖形,如熱圖、小提琴圖、帶誤差線的折線圖等等。
import seaborn as sns
import pandas as pd
df = pd.read_csv('data.csv')
sns.boxplot(x='day', y='total_bill', data=df)
Plotly
Plotly 是一個交互式數(shù)據(jù)可視化庫,可以繪制出高質量的折線圖、散點圖、3D 圖形等等。它支持多種編程語言,如 Python、R、JavaScript 等等。
import plotly.graph_objs as go
import numpy as np
x = np.linspace(0, 10, 100)
y = np.sin(x)
fig = go.Figure(data=go.Scatter(x=x, y=y))
fig.show()
Bokeh
Bokeh 是一個交互式數(shù)據(jù)可視化庫,也支持多種編程語言,如 Python、R、JavaScript 等等。它可以繪制出高質量的折線圖、散點圖、柱狀圖、條形圖等等。
from bokeh.plotting import figure, show
import numpy as np
x = np.linspace(0, 10, 100)
y = np.sin(x)
p = figure(title='Sine Wave')
p.line(x, y, legend_label='Sine')
show(p)
Altair
Altair 是一個基于 Vega-Lite 的 Python 可視化庫,可以快速輕松地繪制出高質量的折線圖、散點圖、柱狀圖等等。
import altair as alt
import pandas as pd
df = pd.read_csv('data.csv')
alt.Chart(df).mark_bar().encode(
x='year',
y='sales',
color='region'
)
ggplot
ggplot 是一個基于 R 語言中的 ggplot2 庫的 Python 可視化庫,可以繪制出高質量的散點圖、柱狀圖、箱線圖等等。
from ggplot import *
import pandas as pd
df = pd.read_csv('data.csv')
ggplot(df, aes(x='date', y='value', color='variable')) + \
geom_line() + \
theme_bw()
Holoviews
Holoviews 是一個 Python 可視化庫,可以創(chuàng)建交互式的數(shù)據(jù)可視化,支持多種類型的可視化圖形,如折線圖、散點圖、柱狀圖、熱力圖等等。
import holoviews as hv
import numpy as np
x = np.linspace(0, 10, 100)
y = np.sin(x)
hv.extension('bokeh')
hv.Curve((x, y))
Plotnine
Plotnine 是一個基于 Python 的 ggplot2 庫的可視化庫,它可以創(chuàng)建高質量的數(shù)據(jù)可視化圖形,如散點圖、柱狀圖、線圖等等。
from plotnine import *
import pandas as pd
df = pd.read_csv('data.csv')
(ggplot(df, aes(x='year', y='sales', fill='region')) +
geom_bar(stat='identity', position='dodge'))
Wordcloud
Wordcloud 是一個用于生成詞云的 Python 庫,可以將文本中出現(xiàn)頻率高的詞匯以圖形的方式展示出來。
from wordcloud import WordCloud
import matplotlib.pyplot as plt
text = "Python is a high-level programming language"
wordcloud = WordCloud().generate(text)
plt.imshow(wordcloud, interpolation='bilinear')
plt.axis('off')
plt.show()
Networkx
Networkx 是一個用于創(chuàng)建、操作和可視化復雜網(wǎng)絡的 Python 庫。它支持創(chuàng)建多種類型的網(wǎng)絡結構,如有向圖、無向圖、加權圖等等。
import networkx as nx
import matplotlib.pyplot as plt
G = nx.DiGraph()
G.add_edge('A', 'B')
G.add_edge('B', 'C')
G.add_edge('C', 'D')
G.add_edge('D', 'A')
pos = nx.spring_layout(G)
nx.draw_networkx_nodes(G, pos, node_size=500)
nx.draw_networkx_edges(G, pos)
nx.draw_networkx_labels(G, pos)
plt.axis('off')
plt.show()
好啦,以上就是精心挑選的 Python 可視化庫,大家最好自己動手體驗一下哦!