记录使用plotly和pandas实现对数据的处理和绘制,如果要说的高级一点,那可以说是数据可视化
plotly是一个图表绘制的三方库,而pandas 则是专业对数据进行处理的三方库,使用pandas处理得到的数据,再配合使用plotly 则可以很好的实现数据的处理和展示。
常规的数据量小的图,可以用Excel 简单完成,但是数据量庞大一点,Excel就支撑不住了,例如数据量达到数万条的情况下,再使用Excel 进行绘图,不仅生成图时耗时会很久,同时Excel会陷入卡顿,使用体验是非常的不爽。
基于这种需求,我们可以采用pandas+plotly去替代实现,pandas做数据的提取,处理;plotly则将处理好的数据绘制成想要的图表
plotly有两种模式,一种是在线绘制,需要账户,可以将绘图保存在云端,一种是离线绘制,也就是本地绘制,保存在本地。保存在哪里不重要,重要的是怎么实现,怎么理解实现。
数据
先来份数据,从网易财经捞份股票数据,数据规整,省去数据缺失处理的麻烦, 部分数据如下:
单个维度分析
首先,先来分析一个简单的数据,分析所有时间内开盘价的波动情况。分析实现的思路:
需要的数据两列,一列是时间,另一列是开盘价,取出数据中的【时间】列作为横坐标,【开盘价】作为作为纵坐标,调用对应的模型画出图即可
import plotly.offline as py
import pandas as pd
import plotly.graph_objects as go
file_path='test_data.csv'
df=pd.read_csv(file_path)
time_column=df['日期']
opening_price=df['开盘价']
# 参数备注:x,y 分别为x,y轴要展示的数据,mode是指定画图样式(折线图、柱状图...),name 是图例
trace=go.Scatter(x=time_column,y=opening_price,mode="lines",name='开盘价')
# 参数备注:title(图标标题),xaxis(x轴的标题,文案显示的角度等...)
layout=go.Layout(title='开盘价分析',xaxis={
'title':'Time','tickangle':60},yaxis={
'title': '开盘价'})
fig=go.Figure(trace,layout)
py.plot(fig)