Plotly 学习笔记 Block #4 :scatter_apply.py

in plotly •  6 years ago 

吹着小空调,写写Plotly —— 我是天涯明月刀,一世智商高的刘老师。

大家好,我们又见面了,你们别来无恙,而我更帅更牛逼了,这个世界就是这样。

接受or不接受?Whatever,你们的观点不重要。

好,咱们开始吧。

书上P24页开始了一个新的例子,我们一起看一下。

这个例子我这么一运行啊,就出来找不到目录的问题了,刘老师的PyCharm肯定被人动过手脚:

改改吧:

图就是这么个图:

在我们没有看代码之前,我们记得我们在Block #1中见过这个图,按道理来说是两个Scatter对象,集合在一个data中。每个Scatter对象有xy一样长度的python list作为raw data。

在进入代码之前,对于我们已经看到内容进行推理,有助于我们在先验思考体系下验证自己的想法,或者推翻它,在推翻自己想法的过程中,我们的思维将建立新的认识,从而进步。

刘老师做哲学从来不是先看哲学书,刘老师都是有了自己的理论框架之后再去看其他哲学家的观点,看着看着就发现,其实他们想过的,我早就想过了,所以就觉得自己很牛逼,这种感觉很爽,你们也可以借鉴。

首先我们看这些import,它代表了程序后续要操作的包或者说包中的内容。

我们看到有pandas,其实最主要的用途就是从csv中读取数据,形成二维表格。

然后是plotly画图API,以及Ploty绘图对象,这两个我们已经很熟悉了。

然后我们看到,做了一些预先的定义,比如绘制宽度,以及绘图API的简短引用。

然后我们看到,果然利用pandas去读取了数据,那么我们必须在此考察一下这个数据的结构、内容:

一看这个数据,稍微了解一点股票的同学都很熟悉,就是十五分钟最高价,最低价,开盘价,收盘价这些东西。

有多少列呢?一共8列,并且是有title的。

我为什么强调这一点呢?因为我也忘了pandas是怎么用的了,所以这行:

df9 = df[:10];

这一行显然是取10个数据,然而列上只有9个数据,所以肯定是取9行无疑。

我们可以测试一下:

果然:

好,我们继续往下看。

idx = df9['xtim']

xtim是表的最后一列。

xd0 = (df9['close'] - 27) * 50

所以这tm是在干什么呢?拿到df9这十行数据里面的close这一列的所有数据,每个都减27,然后又把结果乘以50。

这么风骚的玩法到底是为了什么呢?

df2 = df9

注意,之前的df9的内容是没有改变的,这里做了一个它的引用。

df2['xd1'] = xd0 - 10
df2['xd2'] = xd0
df2['xd3'] = xd0 + 10

加列了对不对?在这个列表中加了xd1,xd2,xd3这三列,并且以xd0,就是那个风骚的操作结果为中线,上下做了10单位的移位。

然后就打算用这三个数值来画画。

我们再来仔细查看一下这些数据:

它们都是围绕27周围的,所以减去27相当于让数据在0轴上下抖动。

xd0 = (df9['close'] - 27) * 50

乘以50又是什么意思呢?很简单,就是要把数据的振幅从-1到1放大到-50到50,便于查看嘛。

非常符合刘老师的100XBT举例思路,赞。

df2['xd1'] = xd0 - 10
df2['xd2'] = xd0
df2['xd3'] = xd0 + 10

那么这三行不用说了,就是为了移位一下,然后用不同的Scatter样式来绘制一下,如果你仔细看,虽然只有两条线,但是其实是有三波数据在图上的:

我们还需要注意的一点:

layout = pygo.Layout(
title='收盘价--15分钟分时数据',
xaxis=pygo.XAxis(tickangle=-15),

)

xaxis=pygo.XAxis(tickangle=-15)

这句话,什么意思?

首先,我们知道layout是在绘制地图层,不是国境线层。

然后呢,xaxis肯定是创建了一个可配置的x轴。

tickangle呢,我查查。

https://plot.ly/python/reference/

tickangle (angle)

default: auto

Sets the angle of the tick labels with respect to the horizontal. For example, a tickangle of -90 draws the tick labels vertically.

我觉得这个例子比较好啊:

https://github.com/plotly/plotly.js/issues/1123

所以我们改一下会怎么样呢?

原来的:

现在的:

行,这份代码就过了。

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!