操作背景
最近使用 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)
示例: