数据可视化学习笔记(五)

绘制简单图形

散点图和折线图

  • 引入matplotlib的pyplot包

    • import matplotlib.pyplot as plt
  • 引入Seaborn包

    • import seaborn as sns
  • 散点图

    • Pyplot中的scatter()
      • plt.scatter(x,y,marker=None)
    • Seaborn中的jointplot()
      • sns.jointplot(x,y,data=None,kind=‘scatter’)
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
#数据准备
N=1000
x = np.random.randn(N)
y = np.random.randn(N)
#用Matplotlib画散点图
plt.scatter(x,y,marker='>')
plt.show()
#用Seaborn画散点图
df=pd.DataFrame({'x':x,'y':y})
sns.jointplot(x='x',y='y',data=df,kind='scatter')
plt.show()
  • 折线图
    • Pyplot中的plot()
      • plt.plot(x,y)
    • Seaborn中的lineplot()
      • sns.lineplot(x=‘x’,y=‘y’,data=df)
import pandas as pd
import matplotlib.pylpot as plt
import seaborn as sns
#数据准备
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()
  • 直方图
    • Pyplot中的hist()
      • plt.hist(x,bins=10)
    • Seaborn中的distplot()
      • sns.distplot(x,bins=10,kde=True)
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
#数据准备
a = np.random.randn(100)
s = pd.Series(a)
#用Matplotlib画直方图
plt.hist(s)
plt.show()
#用Seaborn画直方图
sns.distplot(s,kde=Flase)
plt.show()
sns.distplot(s,kde=True)
plt.show()
  • 条形图
    • Pyplot中的bar()
      • plt.bar(x,height)
    • Seaborn中的barplot()
      • sns.barplot(x=None,y=None,data=None)
import matplotlib.pyplot as plt
import seaborn as sns
#数据准备
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()
  • 箱线图
    • Pyplot中的boxplot()
      • plt.boxplot(x,labels=None)
    • Seaborn中的boxplot()
      • sns.boxplot(x=None,y=None,data=None)
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
#数据准备
#生成0~1之间的10*4维度数据
data=np.random.normal(size=(10,4))
lables=['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()
  • 饼图
    • Pyplot中的pie()
    • plt.boxplot(x,labels=None)
import matplotlib.pyplot as plt
#数据准备
nums=[25,37,33,37,6]
labels=['High-school','Bachelor','Master','Ph.d','Others']
#用Matplotlib画饼图
lpt.pie(x = nums,labels=labels)
plt.show()
  • 热力图
    • Seaborn中的heatmap()
      • sns.heatmap(data)
import matplotlib.pyplot as plt
import seaborn as sns
#数据准备
fights=sns.load_dataset("flights")
data=flights.pivot('year','month','passengers')
#用Seaborn画热力图
sns.heatmap(data)
plt.show()
  • 蜘蛛图
inport numpy as np
import matplotlib.pyplot as plt
#支持中文显示
plt.rcParams['font.sans-serif'] = [u'SimHei']
#数据准备
labels=np.array(["编程能力","沟通技能","专业知识","团体协作","工具掌握"])
stats=[83,61,95,67,76]
#画图数据准备、角度、状态值
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.set_thetagrids(angles*180/np.pi,labels)
ax.plot(angles,stats,'o-',linewidth=2)
ax.fill(angles,stats,alpha=0.25)
plt.show()
  • 二元变量分布
    • Seaborn中的jointplot()
      • sns.jointplot(x,y,data=None,kind)
    • 参数kind表示不同的图表
      • “ kind=‘scatter’ ”代表散点图
      • “ kind=‘kde’ ”代表核密度图
      • “ kind=‘hex’ ”代表Hexbin图
import matplotlib.pyplot as plt
import seaborn as sns 
#数据准备
tips = sns.load_dataset("tips")
print(tips.head(10))
#用Seaborn画二元变量分布图(散点图、核密度图、Hexbin图)
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()
  • 成对关系
    • Seaborn中的pairplot()
      • sns.pairplot(iris)
import matplotlib.pyplot as plt
import seaborn as sns
#数据准备
iris = sns.load_dataset('iris')
#用Seaborn画成对关系
sns.pairplot(iris)
plt.show()
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值