Skip to content

Latest commit

 

History

History
125 lines (78 loc) · 4.53 KB

File metadata and controls

125 lines (78 loc) · 4.53 KB

项目介绍

《python 编程:入门到实践》第二版 第二部分项目,项目 2 数据可视化部分。各章节如下

第 15 章 生成数据

1、用 matplotlib 绘制图表,并通过random range 生成随机数据
2、用 plotly 绘制图表

第 16 章 下载数据

1、如何将csv转换为图表,并以加利福利亚州几个地方的年天气数据为例,做绘图。
2、读取json格式的全球地震散点数据,并做绘图

第 17 章 通过 Web 获取数据并展示 1、通过 request获取 github 数据,并以柱状图的形式进行展示,同时优化表格样式。

本文件夹下代码除了按照书上指导实现外,还做了部分延伸。延伸部分见:扩展

运行

安装需要的依赖

# 图表格工具
python -m pip install --user matplotlib
python -m pip install --user plotly
# pandas 是数据分析工具
python -m pip install --user pandas
# 网络请求
python -m pip install --user requests

# 将依赖存储到文件中
pip freeze > requirements.txt

matplotlibplotly 都是数据可视化 python

区别是: plotly 支持交互可视化,其输出格式哟 htmlsvgpng 等多种格式

这要比 matplotlib 多。当然 plotly 更新,所以在社区积累支持上,可能就不够。

两者更多区别,参考一下这个文章

plotly 入门文档可以参考: plotly user with python

关于 plotly 中更多的图表设置,可参考: plotly reference

主要文件

安装依赖后,可通过在命令行里直接 python + 文件名运行程序,主要代码文件如下:

scatter_squares.py mpl_squares.py: 生成线图

dice_visual.py: 模拟投多个骰子 N 次的结果,并以 HTML 形式展示

die_visual.py: 模拟投一个骰子 N 次的结果,并以 HTML 形式展示

rw_visual.py: (random walk)生成随机点图,设置点样式等

sitka_highs.py: 锡特卡地区高低温折线图

death_valley_highs_lows.py: 死亡谷地区高低温折线图(对读取数据出现的错误做了兼容ValueError

eq_explore_data.py: 全球地震散点图

python_repos.py: 获取github上最热的python项目,并生成图表

还有一些辅助性文件

die.py: 骰子类

random_walk.py: 生成随机性的 x,y 点数组,传入数量进行控制

show_color_scales.py: 查看plotly支持的色阶

hn_article.py: 从 Hacker News 网站批量获取数据

运行效果

点图-颜色映射

线图,颜色渐变(scatter_squares.py)


随机图形生成

(随机漫步)随机图形生成(rw_visual.py)


骰子结果概率 两个骰子结果之和概率

骰子结果概率(die_visual.py / dice_visual.py)


阿拉斯加7月最高温度线图 阿拉斯加年度最高温度线图 阿拉斯加年度最高低温度线图

阿拉斯加温度线图(sitka_highs.py)


全球地震散点图 全球地震散点图-样式优化

全球地震散点图(eq_explore_data.py)

Tips

CSV 是常见的 excel 格式,其全称是: comma-separated values, 也就是用逗号分隔的字符串。 比如这是一行CSV格式的天气数据

<!-- 阿拉斯加锡特卡2018年1月1日天气数据 -->
"USW00025333", "SITKA AIRPORT, AK US", "2018-01-01", "0.45",, "48", "38"