写在前面的话:

实例中的所有数据都是在GitHub上下载的,打包下载即可。
地址是:http://github.com/pydata/pydata-book

还有一定要说明的:

我使用的是Python2.7,书中的代码有一些有错误,我使用自己的2.7版本调通。

# coding: utf-8
from pandas import Series, DataFrame
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from numpy.random import randn
fig = plt.figure()
ax1 = fig.add_subplot(2,2,1)
ax2 = fig.add_subplot(2,2,2)
ax3 = fig.add_subplot(2,2,3)
plt.plot(randn(50).cumsum(),'k--')
_ = ax1.hist(randn(100),bins=20,color='k',alpha=0.3)
ax2.scatter(np.arange(30),np.arange(30) + 3 * randn(30))
fig,axes = plt.subplots(2,3)
axesfig,axes = plt.subplots(2,2,sharex=True,sharey=True)
for i in range(2):for j in range(2):axes[i,j].hist(randn(500),bins=50,color='k',alpha=0.5)
plt.subplots_adjust(wspace=0,hspace=0)
plt.plot(randn(30).cumsum(),'ko--')
data = randn(30).cumsum()
plt.plot(data,'k--',label='Default')
plt.plot(data,'k--',drawstyle='steps-post',label='steps-post')
plt.legend(loc='best')fig = plt.figure();ax = fig.add_subplot(1,1,1)
ax.plot(randn(1000).cumsum())
ticks = ax.set_xticks([0,250,500,750,1000])
labels = ax.set_xticklabels(['one','two','three','four','five'],rotation=30,fontsize='small')
ax.set_title('aadadada dsadad sdad')fig = plt.figure()
ax = fig.add_subplot(1,1,1)
ax.plot(randn(1000).cumsum(),'k',label = 'one')
ax.plot(randn(1000).cumsum(),'k--',label = 'two')
ax.plot(randn(1000).cumsum(),'k.',label = 'three')
ax.legend(loc = 'best')
plt.show()from datetime import datetime
fig = plt.figure()
ax = fig.add_subplot(1,1,1)
data = pd.read_csv('D:\Source Code\pydata-book-master\ch08\spx.csv',index_col = 0,parse_dates = True)
spx = data['SPX']
spx.plot(ax = ax,style = 'k-')
crisis_data = [
(datetime(2007,10,11),'Peak of bull market'),
(datetime(2008,3,12),'Bear Stearns Fails'),
(datetime(2008,9,15),'Lehman Bankruptcy')
]
for date,label in crisis_data:ax.annotate(label,xy = (date,spx.asof(date) + 50),xytext = (date,spx.asof(date) + 200),arrowprops = dict(facecolor = 'black'),horizontalalignment = 'left',verticalalignment = 'top')
ax.set_xlim(['1/1/2007','1/1/2011'])
ax.set_ylim([600,1800])
ax.set_title('Important dates in 2008-2009 finacial crisis')
plt.show()fig = plt.figure()
ax = fig.add_subplot(1,1,1)
rect = plt.Rectangle((0.2,0.75),0.4,0.15,color = 'k',alpha = 0.3)
circ = plt.Circle((0.7,0.2),0.15,color = 'b',alpha = 0.3)
pgon = plt.Polygon([[0.15,0.15],[0.35,0.4],[0.2,0.6]],color = 'g',alpha = 0.5)
ax.add_patch(rect)
ax.add_patch(circ)
ax.add_patch(pgon)
plt.show()s = Series(np.random.randn(10).cumsum(),index = np.arange(0,100,10))
s.plot(use_index = False)
df = DataFrame(np.random.randn(10,4).cumsum(0),columns = ['A','B','C','D'],index = np.arange(0,100,10))
df.plot()fig,axes = plt.subplots(2,1)
data = Series(np.random.randn(16),index = list('abcdefghijklmnop'))
data.plot(kind = 'barh',ax = axes[0],color = 'k',alpha = 0.7)
data.plot(kind = 'bar',ax = axes[1],color = 'k',alpha = 0.7)df = DataFrame(np.random.randn(6,4),index = ['one','two','three','four','five','six'],columns = pd.Index(['A','B','C','D'],name = 'Genus'))
df
df.plot(kind = 'bar')
df.plot(kind = 'bar',stacked = True,alpha = 0.5)tips = pd.read_csv('D:\Source Code\pydata-book-master\ch08\\tips.csv')
party_counts = pd.crosstab(tips.day,tips.size)
party_counts
party_counts = party_counts.ix[:,2:5]
party_pcts = party_counts.div(party_counts.sum(1).astype(float),axis = 0)
party_pcts
party_pcts.plot(kind = 'bar',stacked = True)tips['tip_pct'] = tips['tip'] / tips['total_bill']
tips['tip_pct'].hist(bins = 50)
tips['tip_pct'].plot(kind = 'kde')
comp1 = np.random.normal(0,1,size = 200)
comp2 = np.random.normal(10,2,size = 200)
values = Series(np.concatenate([comp1,comp2]))
values
values.hist(bins = 100,alpha = 0.3,color = 'k',normed = True)
values.plot(kind = 'kde',style = 'k--')macro = pd.read_csv('D:\Source Code\pydata-book-master\ch08\macrodata.csv')
data = macro[['cpi','m1','tbilrate','unemp']]
trans_data = np.log(data).diff().dropna()
trans_data[-5:]
plt.scatter(trans_data['m1'],trans_data['unemp'])
plt.title('Changes in log %s vs. log %s'%('m1','unemp'))
pd.scatter_matrix(trans_data,diagonal = 'kde',color = 'k',alpha = 0.3)
pd.scatter_matrix(trans_data,diagonal = 'hist',color = 'k',alpha = 0.3)data = pd.read_csv('D:\Source Code\pydata-book-master\ch08\Haiti.csv')
data
data[['INCIDENT DATE','LATITUDE','LONGITUDE']][:10]
data['CATEGORY'][:6]
data.describe()
data = data[(data.LATITUDE > 18) & (data.LATITUDE < 20) & (data.LONGITUDE > -75) &(data.LONGITUDE < -70) & data.CATEGORY.notnull()]
def to_cat_list(catstr):stripped = (x.strip() for x in catstr.split(','))return [x for x in stripped if x]
def get_all_categoties(cat_series):cat_sets = (set(to_cat_list(x)) for x in cat_series)return sorted(set.union(*cat_sets))
def get_english(cat):code,names = cat.split('.')if '|' in names:names = names.split('|')[1]return code,names.strip()
all_cats = get_all_categoties(data.CATEGORY)
english_mapping = dict(get_english(x) for x in all_cats)
english_mapping['2a']
english_mapping['6c']
def get_code(seq):return [x.split('.')[0] for x in seq if x]
all_codes = get_code(all_cats)
code_index = pd.Index(np.unique(all_codes))
dummy_frame = DataFrame(np.zeros((len(data),len(code_index))),index = data.index,columns = code_index)
dummy_frame.ix[:,:6]
for row,cat in zip(data.index,data.CATEGORY):codes = get_code(to_cat_list(cat))dummy_frame.ix[row,codes] = 1
data = data.join(dummy_frame.add_prefix('category_'))
from mpl_toolkits.basemap import Basemap
def basic_haiti_map(ax = None,lllat = 17.25,urlat = 20.25,lllon = -75,urlon = -71):m  = Basemap(ax = ax,projection = 'stere',lon_0 = (urlon + lllon) / 2,lat_0 = (urlat + lllat) / 2,llcrnrlat = lllat,urcrnrlat = urlat,llcrnrlon = lllon,urcrnrlon = urlon,resolution = 'f' )m.drawcoastlines()m.drawstates()m.drawcountries()return m
fig,axes = plt.subplots(nrows=2,ncols=2,figsize=(12,10))
fig.subplots_adjust(hspace=0.05,wspace=0.05)
to_plot = ['2a','1','3c','7a']
lllat=17.25;urlat=20.25;lllon=-75;urlon=-71
for code,ax in zip(to_plot,axes.flat):m = basic_haiti_map(ax,lllat=lllat,urlat=urlat,lllon=lllon,urlon=urlon)cat_data = data[data['category_%s' % code] == 1]x,y = m(cat_data.LONGITUDE,cat_data.LATITUDE)m.plot(x,y,'k.',alpha=0.5)ax.set_title('%s:%s'%(code,english_mapping[code]))shapefile_path = 'D:\Source Code\pydata-book-master\ch08\PortAuPrince_Roads'
m.readshapefile(shapefile_path,'roads')

《利用Python进行数据分析》笔记---第8章绘图和可视化相关推荐

  1. 《利用Python 进行数据分析》第八章:绘图和可视化

    对<利用Python 进行数据分析>(Wes Mckinney著)一书中的第八章中绘图和可视化进行代码实验.原书中采用的是Python2.7,而我采用的Python3.7在Pycharm调 ...

  2. 利用python进行数据分析 笔记_利用python进行数据分析--(阅读笔记一)

    原博文 2016-06-17 23:21 − 以此记录阅读和学习<利用Python进行数据分析>这本书中的觉得重要的点! 第一章:准备工作 1.一组新闻文章可以被处理为一张词频表,这张词频 ...

  3. 利用python进行数据分析——第十四章_数据分析案例

    文章目录 本章中的数据文件可从下面的github仓库中下载 利用python进行数据分析(第二版) 一.从Bitli获取 1.USA.gov数据 1.1纯python时区计数 1.2使用pandas进 ...

  4. 利用python进行数据分析 笔记_利用python进行数据分析(O#039;Relly)学习笔记-一团网...

    利用python进行数据分析(O'Relly)学习笔记 1.第一个bug import pandas plot(arrange(10)) #报错name 'plot' is not defined. ...

  5. 利用Python进行数据分析笔记-pandas建模(statsmodels篇)

    跟着教程学习了一段时间数据分析,越学感觉坑越多.于是花了一个星期仔细看了下<利用Python进行数据分析>.写在这里主要是记录下,方便自己查看. statsmodels简介 statsmo ...

  6. 利用Python进行数据分析笔记-pandas建模(Patsy篇)

    跟着教程学习了一段时间数据分析,越学感觉坑越多.于是花了一个星期仔细看了下<利用Python进行数据分析>.写在这里主要是记录下,方便自己查看. import numpy as np im ...

  7. python数据分析pandas_利用Python进行数据分析笔记-pandas建模(Patsy篇)

    跟着教程学习了一段时间数据分析,越学感觉坑越多.于是花了一个星期仔细看了下<利用Python进行数据分析>.写在这里主要是记录下,方便自己查看. import numpy as np im ...

  8. 《利用python进行数据分析》——第6章 数据加载、存储与文件格式——读书笔记

    第6章 数据加载.存储与文件格式 6.1 读写文本格式的数据 pandas提供了一些用于将表格型数据读取为DataFrame对象的函数. 其中read_csv和read_talbe用得最多 panda ...

  9. 《利用Python进行数据分析》第七章——数据清洗与准备

    文章目录 前言 一.处理缺失值 1.1 过滤缺失值 1.2 补全缺失值 总结 前言 在本章中,我将讨论用于缺失值.重复值.字符串操作和其他分析数据转换的工具.而这篇文章中主要介绍如何处理数据的缺失值. ...

最新文章

  1. 《QTP自动化测试进阶》(1)
  2. VMware大会宋家瑜言虚拟化2015年方至巅峰
  3. SQL性能--left join和inner join的运行速度与效率
  4. MySQL python update 语句
  5. 《系统集成项目管理工程师》必背100个知识点-09初步可行性研究可能出现的结果...
  6. 想尽快进入游戏开发行业的必经之路!
  7. linux shell脚本关闭指定端口号的进程
  8. (⊙o⊙) 这个头条也坐不住了?
  9. java 由接口构造对象_Java学习笔记04——类和对象|抽象和接口|构造方法与继承...
  10. python fromarray_python --- 之pil image.fromarray
  11. 从 Wi-Fi 6 的到来,看家庭网络的优化之路!
  12. php里面求坐标的间距,php如何计算两坐标点之间的距离
  13. mysql常量求和_Mysql之:count(*)、count(常量)、count(字段)的区别
  14. 移动端1px细线问题
  15. intellij HTTP状态 404 - 未找到_IntelliJ静态分析竟有代码检测优化,删除冗余等功能...
  16. JavaScript高级程序设计 第4版(中文高清)扫描版
  17. python alphago_使用 Python 搭建简易版AlphaGo
  18. ectouch2.0 php5.5_Ectouch2.0 分析解读代码审计流程
  19. 【单片机竞赛:共阳数码管静态控制】
  20. 量子计算机和量子纠缠的关系,科普:什么是量子纠缠和量子计算?

热门文章

  1. android耗电量检测
  2. C语言-函数原型,指针与函数
  3. 电表远程抄表系统如何保证数据传输的准确性
  4. Python精选5篇教学心得
  5. 关于spring boot启动报Error creating bean with name ‘XXX‘ defined in file异常
  6. Python项目一:pygname
  7. 【H5】自己写了个仿360商城demo,欢迎大虾路过拍砖
  8. iframe常见问题详解
  9. 计算机应用自我介绍一分钟,计算机应用专业一分钟自我介绍范文.docx
  10. 总结造纸业中水回用方案及处理工艺