1.前序
每當(dāng)我們需要對(duì)數(shù)據(jù)做可視化呈現(xiàn)時(shí),總是疑慮及煩惱所呈現(xiàn)的圖形是怎么樣的,如何實(shí)現(xiàn)。這里給大家分享一下,常見(jiàn)的50種常見(jiàn)可視化圖形。

image.png

image.png

image.png
2.示例展示
這里以幾個(gè)圖形數(shù)據(jù)為例展示。
散點(diǎn)圖(Scatter plot)
散點(diǎn)圖是用于研究?jī)蓚€(gè)變量之間關(guān)系的經(jīng)典的和基本的圖表。如果數(shù)據(jù)中有多個(gè)組,則可能需要以不同顏色可視化每個(gè)組。您可以使用 plt.scatterplot() 方便地執(zhí)行此操作。
# Import dataset
midwest = pd.read_csv("https://raw.githubusercontent.com/selva86/datasets/master/midwest_filter.csv")
# Prepare Data
# Create as many colors as there are unique midwest['category']
categories = np.unique(midwest['category'])
colors = [plt.cm.tab10(i/float(len(categories)-1)) for i in range(len(categories))]
# Draw Plot for Each Category
plt.figure(figsize=(16, 10), dpi= 80, facecolor='w', edgecolor='k')
for i, category in enumerate(categories):
plt.scatter('area', 'poptotal',
data=midwest.loc[midwest.category==category, :],
s=20, c=colors[i], label=str(category))
# Decorations
plt.gca().set(xlim=(0.0, 0.1), ylim=(0, 90000),
xlabel='Area', ylabel='Population')
plt.xticks(fontsize=12); plt.yticks(fontsize=12)
plt.title("Scatterplot of Midwest Area vs Population", fontsize=22)
plt.legend(fontsize=12)
plt.show()

image.png
抖動(dòng)圖(Jittering with stripplot)
通常,多個(gè)數(shù)據(jù)點(diǎn)具有完全相同的 X 和 Y 值。結(jié)果,多個(gè)點(diǎn)繪制會(huì)重疊并隱藏。為避免這種情況,請(qǐng)將數(shù)據(jù)點(diǎn)稍微抖動(dòng),以便您可以直觀地看到它們。
使用 seaborn 的 stripplot() 很方便實(shí)現(xiàn)這個(gè)功能。
# Import Data
df = pd.read_csv("https://raw.githubusercontent.com/selva86/datasets/master/mpg_ggplot2.csv")
# Draw Stripplot
fig, ax = plt.subplots(figsize=(16,10), dpi= 80)
sns.stripplot(df.cty, df.hwy, jitter=0.25, size=8, ax=ax, linewidth=.5)
# Decorations
plt.title('Use jittered plots to avoid overlapping of points', fontsize=22)
plt.show()

image.png
相關(guān)圖(Correllogram)
相關(guān)圖用于直觀地查看給定數(shù)據(jù)框(或二維數(shù)組)中所有可能的數(shù)值變量對(duì)之間的相關(guān)度量。
# Import Dataset
df = pd.read_csv("https://github.com/selva86/datasets/raw/master/mtcars.csv")
# Plot
plt.figure(figsize=(12,10), dpi= 80)
sns.heatmap(df.corr(), xticklabels=df.corr().columns, yticklabels=df.corr().columns, cmap='RdYlGn', center=0, annot=True)
# Decorations
plt.title('Correlogram of mtcars', fontsize=22)
plt.xticks(fontsize=12)
plt.yticks(fontsize=12)
plt.show()

image.png
更多資料請(qǐng)參考原文