主页 > 下载官方imtoken钱包 > 超火爆动态价格区域图:一步步教你!

超火爆动态价格区域图:一步步教你!

下载官方imtoken钱包 2023-07-03 05:24:34

美国比特币最新价格_比特币今天的最新价格_比特币最新动态价格

Star★公众号爱你♥

最近的文章

♥200万字干货:

比特币最新动态价格_比特币今天的最新价格_美国比特币最新价格

前言

近日,公众号上线了一篇文章,标题是逆向很强。 各大公众号纷纷转发,知乎也获得了400+点赞。

比特币最新动态价格_美国比特币最新价格_比特币今天的最新价格

美国比特币最新价格_比特币今天的最新价格_比特币最新动态价格

比特币最新动态价格_比特币今天的最新价格_美国比特币最新价格

具体来说,这种图表可以叫做:Bar Chart Race,什么国家的GDP都有,谁谁的兴衰史,等等。

今天EasyCharts博主张杰为我们带来了动态价格变化面积图的NB操作。 下面就让我们快速浏览一下吧! 同时也祝愿张杰的新书大卖!

美国比特币最新价格_比特币今天的最新价格_比特币最新动态价格

本文来源于即将出版的新书《Python数据可视化之美》中动态图表的绘制。

文本

我们使用比特币从2013年到2019年的价格数据来绘制一个面积图动画。 HTML交互效果页面如下图所示,包括2013年4月28日起每天的开盘价、最高价、最低价和收盘价。

具体实现代码

我们首先导入数据集'BTC_price_history.csv'比特币最新动态价格,然后将日期列转换为日期数据。 我们选择当天最高价和最低价的平均值作为比特币当天的价格。 其具体代码如下:

df = pd.read_csv('BTC_price_history.csv')
df['date']=[datetime.strptime(d, '%Y/%m/%d').date() for d in df['date']]
df['price']=(df['high']+df['low'])/2
df.head(5)

比特币今天的最新价格_比特币最新动态价格_美国比特币最新价格

比特币最新动态价格_美国比特币最新价格_比特币今天的最新价格

我们设置图表每次显示Span_Date=180天的比特币价格数据,所以得到180天的数据集df_temp后,如果使用plt.fill_between()函数,就可以实现红色填充的面积图比特币最新动态价格,如下图所示; 如果使用plt.bar()函数就可以实现Spectral_r颜色图的面积图,如下图b所示。 代码如下:

def draw_areachart(Num_Date):
    Span_Date=180
    ax.clear()
    if Num_Date
        df_temp=df.loc[0:Num_Date,:]
        df_span=df.loc[0:Span_Date,:]
        plt.fill_between(df_temp.date.values, y1=df_temp.price.values, y2=0,alpha=0.75, facecolor='r', linewidth=1,edgecolor ='none',zorder=1)
        plt.plot(df_temp.date, df_temp.price, color='k',zorder=2)
        plt.scatter(df_temp.date.values[-1], df_temp.price.values[-1], color='white',s=150,edgecolor ='k',linewidth=2,zorder=3)
        plt.text(df_temp.date.values[-1], df_temp.price.values[-1]*1.18,s=np.round(df_temp.price.values[-1],1),size=10,ha='center', va='top')
        plt.ylim(0, df_span.price.max()*1.68)
        plt.xlim(df_span.date.values[0], df_span.date.values[-1])
        plt.xticks(ticks=df_span.date.values[0:Span_Date+1:30],labels=df_span.date.values[0:Span_Date+1:30],rotation=0,fontsize=9)
    else:
        df_temp=df.loc[Num_Date-Span_Date:Num_Date,:]
        plt.fill_between(df_temp.date.values[:-2], y1=df_temp.price.values[:-2], y2=0,alpha=0.75, facecolor='r', linewidth=1,edgecolor ='none',zorder=1)
        plt.plot(df_temp.date[:-2], df_temp.price[:-2], color='k',zorder=2)
        plt.scatter(df_temp.date.values[-4], df_temp.price.values[-4], color='white',s=150,edgecolor ='k',linewidth=2,zorder=3)
        plt.text(df_temp.date.values[-1], df_temp.price.values[-1]*1.18,s=np.round(df_temp.price.values[-1],1),size=10,ha='center', va='top')
        plt.ylim(0, df_temp.price.max()*1.68)
        plt.xlim(df_temp.date.values[0], df_temp.date.values[-1])
        plt.xticks(ticks=df_temp.date.values[0:Span_Date+1:30],labels=df_temp.date.values[0:Span_Date+1:30],rotation=0,fontsize=9)
    
    
    plt.margins(x=0.2)
    ax.spines['top'].set_color('none') # 设置上‘脊梁’为红色
    ax.spines['right'].set_color('none') # 设置上‘脊梁’为无色
    ax.spines['left'].set_color('none') # 设置上‘脊梁’为无色
    plt.grid(axis="y",c=(217/256,217/256,217/256),linewidth=1) #设置网格线
    plt.text(0.01, 0.95,"BTC平均价格($)",transform=ax.transAxes, size=10, weight='light', ha='left')
    ax.text(-0.07, 1.03, '2013年到2019年的比特币BTC价格变化情况',transform=ax.transAxes, size=17, weight='light', ha='left')

    
fig, ax = plt.subplots(figsize=(6,4), dpi=100)
plt.subplots_adjust(top=1,bottom=0.1,left=0.1,right=0.9,hspace=0,wspace=0)
draw_areachart(180)

美国比特币最新价格_比特币今天的最新价格_比特币最新动态价格

一种

比特币最新动态价格_美国比特币最新价格_比特币今天的最新价格

b

我们将上面的静态面积图代码集成到一个函数中。 当起始日期日数据绘制面积图; 当起始日期≥时,选择截至当前日期的日数据绘制面积图。 使用该函数绘制的不同日期的面积图如图所示。

比特币最新动态价格_比特币今天的最新价格_美国比特币最新价格

比特币今天的最新价格_美国比特币最新价格_比特币最新动态价格

不同日期的面积图 Num_Date, Num_Date=60

美国比特币最新价格_比特币最新动态价格_比特币今天的最新价格

不同日期的面积图 Num_Date, Num_Date=150

使用matplotlib包的animation.FuncAnimation()函数调用draw_reachart(Num_Date)函数,其中输入参数Num_Date = np.arange(0,df.shape[0],1),最后使用HTML() Ipython包的函数将动画转换成HTML页面进行演示,动画在不同日期的演示效果如下图所示。

import matplotlib.animation as animation
from IPython.display import HTML
fig, ax = plt.subplots(figsize=(6,4), dpi=100)
plt.subplots_adjust(left=0.12, right=0.98, top=0.85, bottom=0.1,hspace=0,wspace=0)
animator = animation.FuncAnimation(fig, draw_areachart, frames=np.arange(0,df.shape[0],1),interval=100)#
HTML(animator.to_jshtml())

比特币今天的最新价格_美国比特币最新价格_比特币最新动态价格

不同时间面积图动画演示效果

但是由于动画默认最大音量为20971520.0字节,图11-4-10只生成2013年4月到2014年7月数据绘制的面积图的动画,如果需要调整生成动画的最大音量,你需要改变参数animation.embed_limit。

matplotlib包和plotnine包都可以实现动态数据的可视化呈现。 其中,matplotlib包中:函数FuncAnimation(fig,func,frames,init_func,interval,blit)是绘制动画的主要函数,其参数如下:

美国比特币最新价格_比特币最新动态价格_比特币今天的最新价格

1、fig表示绘制动画(figure)的画布名称;

2、func为自定义绘图函数,如draw_barchart()函数;

3、frames是动画的长度,一个循环包含的帧数,它的值会在函数运行时传递给函数draw_barchart(year)的形参“year”;

4、init_func为自定义起始帧,即初始化函数init,可省略;

5. interval表示更新频率,度量单位为ms;

6. blit的意思是选择更新所有的点或者只更新发生变化的点。 应该选True,mac用户要选False,否则不显示。

此外,您还可以使用 animator.save('animation.gif') 或 animator.save('animation.mp4) 将动画导出为 gif 或 mp4 格式。 但是如果要导出mp4,需要先安装ffmpeg或者mencoder。

-结尾-

量化投资与机器学习微信公众号是行业内主流的量化自媒体,垂直于Quant、MFE、Fintech、AI、ML等领域。 公众号拥有180,000+关注者,来自公募、私募、券商、期货、银行、海外等众多领域。 每天发布行业前沿研究成果和最新量化资讯。

比特币今天的最新价格_比特币最新动态价格_美国比特币最新价格

您的每一次“观看”都是对我们最大的鼓励