学习 seaborn [02]: 条形图、线箱图 & 分类散点图

可视化分类数据 可视化分类数据的统一FacetGrid图级接口为catplot()函数,通过kind参数,可以选择轴级函数有: 分类散点图: stripplot() (with kind=“strip”; the default) swarmplot() (with kind=“swarm”) 分类分布图: boxplot() (with kind=“box”) violinplot() (with kind=“violin”) boxenplot() (with kind=“boxen”) 分类估计图: pointplot() (with kind=“point”) barplot() (with kind=“bar”) countplot() (with kind=“count”) 条形图 绘制两种不同的条形图: barplot() 或 catplot(kind=‘bar’):x为分类,y为该分类下的数据的估计值;需要给x、y赋值。 countplot() 或 catplot(kind=‘count’):x为分类,y为该分类下的数据的数量;只需给x赋值。 两种图形的其他参数使用方法一致。 ...

2020年12月3日 · 2 分钟 · tsingk

学习 seaborn [01]: 散点图 & 线型图

title: 学习 seaborn [01]: 散点图 & 线型图 slug: seaborn-scatter-line date: 2020-11-30 tags: seaborn python category: 数据分析 link: description: type: text 可视化统计关系 表示统计关系的图分为散点图和线型图两类。统一的FacetGrid图级接口函数为relplot()。 散点图 1 2 3 4 5 6 7 8 9 10 import seaborn as sns import pandas as pd %matplotlib inline # seaborn预设主题:darkgrid(默认),whitegrid,dark,white 以及 ticks sns.set() # 导入数据集。由于sns.load_dataset连接不上服务器,使用pandas导入本地下载的数据集 tips = pd.read_csv('seaborn-data-master/tips.csv') display(tips) total_bill tip sex smoker day time size 0 16.99 1.01 Female No Sun Dinner 2 1 10.34 1.66 Male No Sun Dinner 3 2 21.01 3.50 Male No Sun Dinner 3 3 23.68 3.31 Male No Sun Dinner 2 4 24.59 3.61 Female No Sun Dinner 4 ... ... ... ... ... ... ... ... 239 29.03 5.92 Male No Sat Dinner 3 240 27.18 2.00 Female Yes Sat Dinner 2 241 22.67 2.00 Male Yes Sat Dinner 2 242 17.82 1.75 Male No Sat Dinner 2 243 18.78 3.00 Female No Thur Dinner 2 244 rows × 7 columns ...

2020年11月30日 · 3 分钟 · tsingk

利用 Python 计算基金组合指数

练习Python,计算指数基金组合对应的指数,并绘制变化趋势。 基金组合信息 基金组合中一共有 7 支基金,分别为a,b,c,d,e,f,g。创建一个 Dataframe 用来存放各支基金在组合中的份额占比以及跟踪的指数。指数代码从新浪财经查找。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 import pandas as pd data1 = {'rate': [0.2097, 0.0989, 0.0966, 0.0884, 0.2174, 0.1906, 0.0984], 'indexname': ['上证指数', '中证500', '沪深300', '上证指数', '上证指数', '深证金融地产行业指数', '上证指数'], 'indexnum': ['sh000001', 'sh000905', 'sh000300', 'sh000001', 'sh000001', 'sz399619', 'sh000001'] } df1 = pd.DataFrame(data1, index=list('abcdefg')) display(df1) rate indexname indexnum a 0.2097 上证指数 sh000001 b 0.0989 中证500 sh000905 c 0.0966 沪深300 sh000300 d 0.0884 上证指数 sh000001 e 0.2174 上证指数 sh000001 f 0.1906 深证金融地产行业指数 sz399619 g 0.0984 上证指数 sh000001 获取各指数历史数据 利用 AkShare 获取各指数的历史数据。因为股票基金是以收盘价定价,所以只需要各指数的收盘价来合成基金组合的对应指数。 ...

2020年11月13日 · 3 分钟 · tsingk

kit,一个办公文档管理工具

项目背景 kit,一个用于管理工作文档版本的工具。项目地址:https://github.com/tsingkk/kit。 编写这个工具的目的有两个: 自学练习 Python 编程; 学以致用,试图解决自身工作中,文件和版本过多导致分不清文件版本的问题。 勘察设计行业的工作成果为设计文件,以 Word 文档和 CAD 图纸这类二进制文件为主,有别于 IT 行业常用文本文件。git 并不适合用于管理二进制文件,但非常喜欢 git 对版本的管理流程,因此就参考 git 的一般操作流程,写了 kit。对,名字也是模仿的。对 git 的模仿也仅限于操作流程和名字,原因是作为非专业人员看不懂 git 的代码和算法。对版本的管理流程也根据自己工作需要做了简化。 ...

2020年10月20日 · 4 分钟 · tsingk

练手 Matplotlib | 西咸地区总人口变化趋势

起因 之前分析过近年来西安市和陕西省的人口变化趋势,发现西安市人口不断在增长,陕西省人口数量基本持平。 昨天无意中看到一个说法,西安市和咸阳市总人口数量近年来基本没变化,于是想验证下是否如此,顺便练手 matplotlib 做图。 采用常住人口数据,2018年之前数据来自《陕西区域统计年鉴2018》,2018年数据来自相应省市的《2018年国民经济和社会发展统计公报》。 做图 人口数据保存在 .csv 文件里,所以先读取。 ...

2019年10月31日 · 2 分钟 · tsingk

解决 VS Code 中找不到 pep8

之前在VS Code配制好了pep8,今天忽然发现自动纠错没有提示。在 Python: 选择 linter 插件选项中,找不到pep8了。 搜了下,在这篇文章找到解决办法:rename pep8 linter to pycodestyle。 就是说, vscode-python 项目中,pep8 改名字叫 pycodestyle。于是在 Python: 选择 linter 插件中选择 pycodestyle,就OK。

2019年10月18日 · 1 分钟 · tsingk

利用 Python 批量获取县镇运输距离

起因 最近做规划项目,领导让查出某几个市的所有乡镇级行政区域,距离所在县级行政中心的交通运输距离。想着也不是啥难事儿,高德地图一搜就有。 当我把各市行政区划统计完,发现一共有五百多个乡镇,意味着要在地图上搜索五百多次,立马脑仁疼。 于是我把任务分工给了其他同事,几个人同时查,能快点。 看看,思维就是这么僵化,没有立刻意识到重复劳动也许可以借助计算机来自动完成。 边查数据边想,以后还会有此类任务,到时候没同事帮忙可咋办,虽然不费脑力,却消耗大量时间。忽然意识到,我会基本的 Python 啊,搜搜网上有没有自动查距离的教程。 ...

2019年9月28日 · 4 分钟 · tsingk

练手 Matplotlib | 西安人口数量变化

Matplotlib练手1 用Matplotlib做图,可视化近几年西安常住人口数量变化。 数据来源 所用数据来自《陕西区域统计年检 2018》(2000 年~2017年数据)、2018 年陕西省国民经济和社会发展统计公报(2018年数据)、2018 年西安市国民经济和社会发展统计公报(2018年数据)。 绘图 先采用折线图看下西安市与陕西省近几年的常住人口数量变化。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 %matplotlib inline import matplotlib.pyplot as plt from pylab import mpl mpl.rcParams['font.sans-serif'] = ['simhei'] # 指定默认字体 mpl.rcParams['axes.unicode_minus'] = False # 解决保存图像是负号'-'显示为方块的问题 mpl.rcParams['figure.figsize'] = (8.0, 6.0) y = [2000, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018] people_xian = [688.01, 806.81, 822.52, 830.54, 837.52, 843.46, 847.41, 851.34, 855.29, 858.81, 862.75, 870.56, 883.21, 961.67, 1000.37] people_shanxi = [3644, 3690, 3699, 3708, 3718, 3727, 3735, 3743, 3753, 3764, 3775, 3793, 3813, 3835, 3864.40] p1, = plt.plot(y, people_xian) p2, = plt.plot(y, people_shanxi) plt.xlabel('年份') plt.ylabel('常住人口数/万人') plt.xticks(range(2000, 2019, 1), rotation=60) plt.legend([p1, p2], ["西安市", "陕西省"], loc=0) plt.show() ...

2019年7月30日 · 2 分钟 · tsingk

用 python 转换博客文章,从 Farbox 到 Nikola

起因 大概是年初,发现一款 Python 驱动的静态博客生成工具 Nikola。因为一直想学 Python,而且 Nikola 能够直接支持 Jupyter 格式的博文,不像其他博客系统需要额外插件和配置,所以就开始用 Nikola 写博客,同时可以倒逼自己学习 Python。恩,虽然那时 Python 也没咋学,更别提做数据分析,逼格反正先装到位了。 之前几年一直用 Farbox 博客,而后用 Typecho 做了几个月博客。改用 Nikola 后,虽然依然支持 Markdown 写的文章,但要求的文章的 front-matter 格式不同于 Farbox,也无法显示直接在 Typecho 中插入的图片。因此需要把用 Nikola 之前的所有博客文章做适当修改,转换为 Nikola 要求的格式。 ...

2018年10月21日 · 5 分钟 · tsingk

配置 atom 的 python 环境

安装Atom 官方网站直接下载安装包:https://atom.io/。 #配置Atom的安装源 由于Atom自带扩展安装源可能国内连接不上,做如下配置: ~/.atom文件夹下新建.apmrc 的文本文件,添加淘宝源: 1 2 3 4 registry=https://registry.npm.taobao.org/ strict-ssl=false 若电脑商安装有npm,则再运行如下命令: 1 2 npm config set registry https://registry.npm.taobao.org 最后运行: 1 2 apm install --check 若显示: Checking for native build tools done 则问题解决,可放心安装扩展了。 安装支持Python的相关扩展 可以从Atom的扩展管理器搜索安装,不过直接用apm install xxx(扩展名)命令比较快。 ...

2018年6月7日 · 1 分钟 · tsingk