操作背景
最近使用 pandas+numpy+plotly 画heatmap(热力图),来处理股票数据,语法、步骤都没问题,但到画图那一步老是报错,且 plotly 版本为3.1.0;
最后找到原因,plotly 版本的问题,3.1.0 版本会报错,只好降到 2.7.0版本;
平时 pip 都是安装模块,很少卸载,记不清具体用法了,就查了下,顺便总结记录。
查看已安装模块
代码:
pip list
输入 pip list 就会看到目前已安装的模块(模块名以及版本):
卸载指定模块
代码:
pip uninstall ”要卸载的模块“ #例如: pip install pandas
输入代码,根据提示卸载指定模块:
安装指定版本模块
代码:
pip install 模块名==具体版本号 #例如: pip install plotly==2.7.0
输入代码,回车等安装即可:
Done
更改 plotly 版本后成功出图:
附(heatmap code)
基于股票数据做 heatmap 图,旨在对比两个股票数据源
(注意包的安装以及依赖)
对比方式:相减、相除
- 相减:值为”0“,说明数据吻合,NaN说明数据缺失
- 相除:值为”1“,说明数据吻合,NaN说明数据缺失
代码:
import pandas as pd import numpy as np from pathlib import Path from plotly import tools import plotly.offline as py py.init_notebook_mode() # 配置csv文件路径 SERVER_PATH = '/home/v-gazh/jupyter_notebook/data/compare_server_data_done.csv' WINDPY_PATH = '/home/v-gazh/jupyter_notebook/data/WindPy_data.csv' # 读取csv文件 compare_server = pd.read_csv(SERVER_PATH, encoding='utf-8', dtype={'code': np.str}) compare_windpy = pd.read_csv(WINDPY_PATH, encoding='utf-8', dtype={'code': np.str}) compare_server = compare_server.applymap(lambda x: float(f'{x:.2f}') if not isinstance(x, str) else x) compare_windpy = compare_windpy.applymap(lambda x: float(f'{x:.2f}') if not isinstance(x, str) else x) # 设置索引 compare_server.set_index(['date', 'code'], inplace=True) compare_windpy.set_index(['date', 'code'], inplace=True) # 透视表 server_pivotTable = compare_server.pivot_table(values='close', index='date', columns='code') windpy_pivotTable = compare_windpy.pivot_table(values='close', index='date', columns='code') # 相减heatmap图 compare_calc = server_pivotTable - windpy_pivotTable compare_calc.iplot(kind='heatmap', colorscale='greens', center_scale=0, zmin=-2, zmax=5) # 相除heatmap图 compare_calc = server_pivotTable / windpy_pivotTable compare_calc.iplot(kind='heatmap', colorscale='-greens', center_scale=0, zmin=0.1, zmax=10)
示例: