导入package
import matplotlib.pyplot as plt
import seaborn as sns
import numpy as np
import pandas as pd
散点图
N = 1000
x = np.random.randn(N)
y = np.random.randn(N)
# matplotlib
plt.scatter(x,y,marker='x')
plt.show()
#seaborn
df = pd.DataFrame({'x':x,'y':y})
sns.jointplot(x="x",y="y",data=df,kind='scatter');
plt.show()
折线图
x = [2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019]
y = [5, 3, 6, 20, 17, 16, 19, 30, 32, 35]
# matplotlib
plt.plot(x,y)
plt.show()
#seaborn
df = pd.DataFrame({'x':x,'y':y})
sns.lineplot(x="x",y="y",data=df)
plt.show()
直方图
a = np.random.rand(100)
s = pd.Series(a)
#matplotlib
plt.hist(s)
plt.show()
#seaborn
sns.distplot(s,kde=False)
plt.show()
sns.distplot(s,kde=True)
plt.show()
条形图
x = ['Cat1', 'Cat2', 'Cat3', 'Cat4', 'Cat5']
y = [5, 4, 8, 12, 7]
# matplotlib
plt.bar(x,y)
plt.show()
# seaborn
sns.barplot(x,y)
plt.show()
箱线图
data = np.random.normal(size=(10,4))
labels = ['A','B','C','D']
# matplotlib
plt.boxplot(data,labels=labels)
plt.show()
# seaborn
df = pd.DataFrame(data,columns=labels)
sns.boxplot(data=df)
plt.show()
扇形图
nums = [25, 37, 33, 37, 6]
labels = ['High-school','Bachelor','Master','Ph.d', 'Others']
# matplotlib
plt.pie(x=nums,labels=labels)
plt.show()
热图
flights = sns.load_dataset('flights')
data = flights.pivot('year','month','passengers')
# seaborn
sns.heatmap(data)
plt.show()
蜘蛛图
from matplotlib.font_manager import FontProperties
labels=np.array([u" 推进 ","KDA",u" 生存 ",u" 团战 ",u" 发育 ",u" 输出 "])
stats=[83, 61, 95, 67, 76, 88]
angles = np.linspace(0,2*np.pi,len(labels),endpoint=False)
stats = np.concatenate((stats,[stats[0]]))
angles = np.concatenate((angles,[angles[0]]))
# matplotlib
fig = plt.figure()
ax = fig.add_subplot(111,polar=True)
ax.plot(angles,stats,'o-',linewidth=2)
ax.fill(angles,stats,alpha=0.25)
# chinese
# font = FontProperties()
# ax.set_thetagrids(angles*180/np.pi,labels,FontProperties=font)
ax.set_thetagrids(angles*180/np.pi,labels)
plt.show()
二元变量分布
tips = sns.load_dataset("tips")
print(tips.head(10))
# seaborn
sns.jointplot(x='total_bill',y='tip',data=tips,kind='scatter')
sns.jointplot(x='total_bill',y='tip',data=tips,kind='kde')
sns.jointplot(x='total_bill',y='tip',data=tips,kind='hex')
plt.show()
成对关系
iris = sns.load_dataset('iris')
# seaborn
sns.pairplot(iris)
plt.show()