标准库
科学计算与数据分析
Numpy
- ndarray,一个具有矢量算术运算和复杂广播能力的快速且节省空间的多维数组;
- 用于对整组数据进行快速运算的标准数学函数(无需编写循环);
- 用于读写磁盘数据的工具以及用于操作内存映射文件的工具;
- 线性代数、随机数生成以及傅里叶变换功能;
- 用于集成由C、C++、Fortran等语言编写的代码工具。
Pandas
提供高性能,易用的数据结构和数据分析工具。
Pandas官方文档
Pandas教程
Scipy
由一些基于 Python ,用于数学,科学和工程的开源软件构成的生态系统。
Scipy官方文档
易百教程—Scipy教程
机器学习库
Scikit-learn
基于 SciPy 构建的机器学习 Python 模块。
Scikit-learn官方文档
数据可视化
Matplotlib
matplotlib.pyplot绘图显示控制
- 在PyCharm中显示绘图:在绘图代码最后加上语句
plt.show()
。 - 在PyCharm中不显示绘图:在导入matplotlib库后,且在matplotlib.pyplot库被导入前加语句
matplotlib.use(‘agg’)
。 - 在Jupyter Notebook页面内显示绘图:加入语句
%matplotlib inline
。
饼图:标签重叠
方法一:按大小交叉排列
Matplotlib.pyplot 绘画饼图出现标签重叠—排序解决
排序代码:
def pdsort(pddata):# pddata为series类型
length = len(pddata.values)
indexs = [str(x) for x in pddata.index]
for i, j in zip(range(0, length, 2), range(length-1, 0, -2)):
if j <= i:
break
pddata.iloc[i],pddata.iloc[j] = pddata.iloc[j],pddata.iloc[i]
indexs[i], indexs[j] = indexs[j], indexs[i]
pddata = pd.Series(pddata.values, index=indexs)
return pddata
方法二:调节字体大小
调节字体大小
patches,l_text,p_text=plt.pie(money_rate,explode=explode,labels=names,autopct='%.2f%%')
# l_text是饼图对着文字大小,p_text是饼图内文字大小
for t in p_text:
t.set_size(5)
for t in l_text:
t.set_size(6)
# 窗口设置的大一些
plt.figure(figsize=(20, 6.5))
方法三:使用pyecharts绘图
pyecharts
pyecharts是一个用于生成Echarts图表的类库。
- Echarts 官方实例
- pyecharts的GitHub地址
- 文档 pyecharts.org
- 绘图示例gallery.pyecharts.org
- 注意,项目简介中有说明项目基于 pyecharts 1.7.1 版本进行展示,如果想要使用实例,安装pyecharts时需要指定版本:
pip install pyechatrs==1.7.1
- 注意,项目简介中有说明项目基于 pyecharts 1.7.1 版本进行展示,如果想要使用实例,安装pyecharts时需要指定版本:
注意事项
- 在使用 Pandas&Numpy 时,请确保将数值类型转换为 python 原生的 int/float。比如整数类型请确保为 int,而不是 numpy.int32。
pd # series类型(Pandas)
pd.values# numpy
list(pd.values)# numpy.int的列表
pd.values.tolist# int的列表,应采用这种
图像格式设置的问题
- 饼图显示百分比:调整
formatter
参数 - 设置画布大小:初始化时设置
init_opts
gender_pie = (
Pie(init_opts=opts.InitOpts(width='600px',height='400px'))
.add("", [list(z) for z in zip(gender_ratio.index.tolist(),gender_ratio.values.tolist())])
.set_global_opts(title_opts=opts.TitleOpts(title="gender比例"))
.set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {c}({d}%)"))
)
gender_pie.render_notebook()
关于pyecharts没有显示数据的问题
Echart有自带的主题,但是pyecharts如果要使用其他主题的画,需要安装echarts-themes-pypkg包。它提供了 vintage, macarons, infographic, shine 和 roma等主题。需要注意的是,没有安装该包,就使用该包就会导致图不能正常显示。但是代码并不会报错。
pip install echarts-themes-pypkg
pyecharts画图没有数据显示
pyechart 与jupyter 交互式,图表显示空白的解决方案
关于jupyter中无法显示的问题
bar.render()
:可直接使用这个函数,会在根目录下生成相应的网页HTMLbar.render_notebook()
:直接可以展示
eplot
eplot,在pandas中流畅的使用pyecharts!
eplot 是pyecharts库对pandas的一个接口,通过给DataFrame及Series类添加方法,直接使用DataFrame对象添加的方法来画echats交互图。避免了导入pyecharts模块、实例化对应的图像、添加数据等复杂的步骤。
pyecharts提供的方法可以使用python直接画echarts图,但是需要数行代码,而我们平时做数据分析时,数据多存在pandas的DataFrame里,DataFrame的plot方法可以使用matplotlib做后端,直接通过调用实例化的DataFrame的方法来绘制图像,如: df.plot.bar()。 基于同样的想法,为了在pandas中更流畅的使用pyecharts,eplot通过给DataFrame, Series类注册eplot方法来实现类似的功能。 因此,我们无需在DataFrame外创建pyecharts对象,而是直接用eplot方法通过pyecharts后端来画交互图。
安装方法: pip install eplot
GitHub地址examples可查看实例
Seaborn
Seaborn官方文档
知乎-Seaborn官方文档学习笔记