汇网,绘教学
import numpy as np import pandas as pdimport matplotlib.pyplot as plt pandas和seaborn绘图 折线图 s = pd.Seriess 0 0.58175810 0.92784420 4.12197230 3.84921740 2.64339250 1.69954360 1.38594370 0.62348780 0.24125790 0.363434dtype: float64 s.plot() #默认情况下plot()绘制的是折线图 . plot属性包含了不同绘图类型的方法族。plot.bar()和plot.barh()可以分别绘制垂直和水平的柱状图。Series或DataFrame的索引将会被用作x轴刻度或y轴刻度。fig , axes = plt.subplots(2,1)data = pd.Seriesdata.plot.bardata.plot.barh#color=\’k\’和alpha=0.7将柱子颜色设置为黑色,并将图像的填充色设置为部分透明。DataFrame的列名称“Genus”被用作了图例标题。通过传递stacked=Ture来生成堆积柱状图,使得每一行的值堆积在一起.柱子的值是tip_pct的平均值。柱子上面画出的黑线代表的是95%的置信区间.使用seaborn.set在不同的绘图外观中进行切换.sns.set 直方图和密度图 tips[\’tip_pct\’].plot.hist
import numpy as np import pandas as pdimport matplotlib.pyplot as plt pandas和seaborn绘图 折线图 s = pd.Series(np.random.randn(10).cumsum(),index=np.arange(0,100,10))s 0 0.58175810 0.92784420 4.12197230 3.84921740 2.64339250 1.69954360 1.38594370 0.62348780 0.24125790 0.363434dtype: float64 s.plot() #默认情况下plot()绘制的是折线图
df = pd.DataFrame(np.random.randn(10,4).cumsum(0),columns=[\’A\’,\’B\’,\’C\’,\’D\’],index=np.arange(0,100,10))df ABCD0-0.4543740.3979380.3568420.071766101.063938-0.9295800.4962210.142492200.526858-0.747939-1.4057970.209039301.022407-0.763073-2.2094880.07178140-0.474689-0.782196-1.225337-0.438294500.9034100.287945-0.837782-1.096535600.473978-1.000205-0.728329-2.816553700.327923-0.646799-0.635620-3.117912800.350638-1.914932-1.410239-5.526775900.446866-1.988524-1.112387-6.427741 df.plot()
plot属性包含了不同绘图类型的方法族。df.plot()等价于df.plot.line().
柱状图
plot.bar()和plot.barh()可以分别绘制垂直和水平的柱状图。
Series或DataFrame的索引将会被用作x轴刻度(bar)或y轴刻度(barh)。
fig , axes = plt.subplots(2,1)data = pd.Series(np.random.rand(16),index=list(\’abcdefghijklmnop\’))data.plot.bar(ax=axes[0],color=\’k\’,alpha=0.7)data.plot.barh(ax=axes[1],color=\’k\’,alpha=0.7)#color=\’k\’和alpha=0.7将柱子颜色设置为黑色,并将图像的填充色设置为部分透明。
df = pd.DataFrame(np.random.rand(6,4),index=[\’one\’,\’two\’,\’three\’,\’four\’,\’five\’,\’six\’],columns=pd.Index([\’A\’,\’B\’,\’C\’,\’D\’],name=\’Genus\’))df GenusABCDone0.1163330.5475580.0573680.763959two0.7906970.5466260.4087810.676374three0.6048650.5570590.5306650.289824four0.5672440.7984290.7828600.712815five0.6280940.0056990.4395030.644901six0.2226230.4425210.9477370.848191 df.plot.bar()
DataFrame的列名称“Genus”被用作了图例标题。通过传递stacked=Ture来生成堆积柱状图,使得每一行的值堆积在一起.
df.plot.barh(stacked=True,alpha=0.5)
tips = pd.read_csv(\’examples/tips.csv\’) party_counts = pd.crosstab(tips[\’day\’],tips[\’size\’])party_counts size123456dayFri1161100Sat253181310Sun039151831Thur1484513 party_counts = party_counts.loc[: ,2:5]party_counts size2345dayFri16110Sat5318131Sun3915183Thur48451 #标准化至和为1party_pcts = party_counts.div(party_counts.sum(1),axis=0)party_pcts size2345dayFri0.8888890.0555560.0555560活动:慈云数据爆款香港服务器,CTG+CN2高速带宽、快速稳定、平均延迟10+ms 速度快,免备案,每月仅需19元!! 点击查看.000000Sat0.6235290.2117650.1529410.011765Sun0.5200000.2000000.2400000.040000Thur0.8275860.0689660.0862070.017241 party_pcts.plot.bar()
import seaborn as sns tips[\’tip_pct\’] = tips[\’tip\’]/(tips[\’total_bill\’] – tips[\’tip\’])tips.head() total_billtipsmokerdaytimesizetip_pct016.991.01NoSunDinner20.063204110.341.66NoSunDinner30.191244221.013.50NoSunDinner30.199886323.683.31NoSunDinner20.162494424.593.61NoSunDinner40.172069 sns.barplot(x =\’tip_pct\’,y = \’day\’,data = tips,orient = \’h\’)
柱子的值是tip_pct的平均值。柱子上面画出的黑线代表的是95%的置信区间.
sns.barplot(x =\’tip_pct\’,y = \’day\’,hue=\’time\’ ,data = tips,orient = \’h\’)
使用seaborn.set在不同的绘图外观中进行切换.
sns.set(style=\’whitegrid\’) 直方图和密度图 tips[\’tip_pct\’].plot.hist(bins=50)
tips[\’tip_pct\’].plot.density()
密度图也被称为内核密度估计图(KDE)。 plot.kde
distplot方法可以绘制直方图和连续密度估计。
comp1 = np.random.normal(0,1,size=200)comp2 = np.random.normal(10,2,size=200) values = pd.Series(np.concatenate([comp1,comp2])) sns.distplot(values,bins=100,color=\’k\’)
散点图或点图
点图或散点图可以用于检验两个一维数据序列之间的关系。
macro = pd.read_csv(\’examples/macrodata.csv\’) data = macro[[\’cpi\’,\’m1\’,\’tbilrate\’,\’unemp\’]] trans_data = np.log(data).diff().dropna() trans_data[-5:] cpim1tbilrateunemp198-0.0079040.045361-0.3968810.105361199-0.0219790.066753-2.2772670.1397622000.0023400.0102860.6061360.1603432010.0084190.037461-0.2006710.1273392020.0088940.012202-0.4054650.042560
使用seaborn的regplot方法,绘制散点图。
sns.regplot(\’m1\’,\’unemp\’,data=trans_data)plt.title(\’Changes in log %s versus log %s\’%(\’m1\’,\’unemp\’)) Text(0.5,1,\’Changes in log m1 versus log unemp\’)
pairplot函数,在对角线上放置每个变量的直方图或密度估计值。
sns.pairplot(trans_data,diag_kind=\’kde\’,plot_kws={\’alpha\’:0.2})
分面网格和分类数据
使用分面网格是利用多种分组变量对数据进行可视化的方式。
seaborn拥有一个有效的内建函数factorplot,它可以简化多种分面绘图。
sns.factorplot(x=\’day\’,y=\’tip_pct\’,hue=\’time\’,col=\’smoker\’,kind=\’bar\’,data=tips[tips.tip_pct