【手把手教你】股票可视化分析之Pyecharts(一)

Pyecharts简介

Echarts 是百度基于JavaScript 开源的可视化图表库,而 Pyecharts 相当于是 Python+echarts,即使用 Python 语言调用 echarts 的开源库,可以制作非常精美的图表。实际上 Python 可视化库有很多,包括 Matplotlib、Seaborn、Bokeh 、Pygal、 Plotly 和 Pyecharts等等。其中 Matplotlib 是大家入门数据分析的最基本可视化工具;Seaborn 实际上是 matplotlib 的一个封装,提供了很多统计分析的基本图表;Bokeh、Pygal、Plotly 和 Pyecharts 等功能相似,可以输出非常精美的可视化图表,尤其是 Plotly 和 Pyecharts ,均支持动态可交互效果,但代码相对复杂。这些可视化库基本上都支持主流 Notebook 环境,Jupyter Notebook 和 JupyterLab,可以轻松集成至 Flask,Django 等主流 Web 框架。关于高级可视化库之间的优劣对比在此不做深入探究,读者可根据个人需要和编程习惯选择相应的库进行学习,本文将重点介绍 Pyecharts 及其在金融量化上的应用,代码均在Jupyter notebook上运行。关于Pyechart更详细完整的介绍可以参见其官网:Pyecharts。

01

版本与安装

Pyecharts 分为 v0.5.X(旧版) 和 v1 (新版)两个版本,两个不兼容,v1 是一个全新的版本。直接使用pip安装可获取最新版本:pip install pyecharts,如需使用旧版本,需要指定安装版本号,如:pip install pyecharts=0.5.11。本文使用的是1.9.1版的pyecharts,v0.5版本编程代码可参考公众号历史文章。

#查看电脑系统和库版本
#watermark是第三方库需要先安装,
#在cmd(如安装的是anaconda,直接打开anaconda prompt)上输入:pip install watermark
%load_ext watermark
#%watermark 查看电脑版本
%watermark -p pyecharts,pandas,numpy,matplotlib,talib,backtrader,jupyter
pyecharts : 1.9.1
pandas    : 1.3.2
numpy     : 1.20.3
matplotlib: 3.3.4
talib     : 0.4.19
backtrader: 1.9.76.123
jupyter   : 1.0.0

02

模块导入与调用

图表的类在charts,*表示导入全部,一般不建议这么写,可根据图表类型导入,如柱状图和折线图:from pyecharts.charts import Bar,Line。配置项通过options(缩写为opts),用于修饰图表,进阶还可调用Javascript 的代码,导入JsCode:from pyecharts.commons.utils import JsCode。theme可以定制主题,导入:from pyecharts.globals import ThemeType,一般使用默认的ThemeType.WHITE。导入Faker可以使用自带的数据画图。

from pyecharts.charts import *
from pyecharts import options as opts
from pyecharts.faker import Faker

03

图表配置项

Pyecharts使用 options对图表的配置项进行设置,根据个人需要,为图表添加(减少)元素,美化和修饰图表。配置项非常多,包括全局配置项(set_global_opts)22个大类和系列配置项(结合数据系列进行配置)17个大类,每一个配置类下又有众多的参数设置。配置项为制作精美的图表提供了相当完善的功能选择,但是对新手来说相当不友好,各种类和参数选择让人眼花缭乱和望而生畏(老版本0.5.11在这方面简洁很多)。这里建议大家结合常用的图表类型模板学习几个常用的配置项,其他配置项基本上使用默认参数即可。

2be5caabe6c23eb6351438ceb1d4921a.png图片来源:https://pyecharts.org/#/zh-cn/global_options

pyecharts 对配置项基本上都采用 XXXOpts/XXXItems 以及 dict 两种数据形式进行调用,下面介绍几个常用的配置项。 
(1)全局配置项,通过set_global_opts 方法设置

  • InitOpts:初始化配置项,一般在图表函数内加载,如Bar(init_opts=opts.InitOpts(width='900px',height='600px',设置图表画布宽width高height('数字+px'),theme: str = "white"图表主题));

  • TitleOpts:标题配置项title_opts=opts.TitleOpts(title=,subtitle=,pos_left=),其中主标题title,副标题subtitle, # title 组件离容器左侧的距离,pos_left = 可选'left', 'center', 'right'或如20、20%。离右侧距离,pos_right= None,顶部距离pos_top = None,可选'top', 'middle', 'bottom'或数字或百分比。底部距离,pos_bottom: = None,);

  • DataZoomOpts:区域缩放配置项,默认不显示, datazoom_opts=opts.DataZoomOpts(is_show=True或False,type_: str = "slider"或"inside" ,range_start=:数据窗口范围的起始百分比:0 ~ 100表示 0% ~ 100%,range_end=:数据窗口范围结束百分比,xaxis_index= number表示控制一个轴,Array表示控制多个轴,yaxis_index=同xaxis_index的设置,位置pos_left同title);

  • LegendOpts:图例配置项,默认不显示,legend_opts=opts.LegendOpts(is_show: bool = True是否显示,位置pos_left同title,orient= 布局朝向,可选:'horizontal', 'vertical',);

  • VisualMapOpts:视觉映射配置项,默认不显示,visualmap_opts=opts.VisualMapOpts(is_show: bool = True,type_: str = "color",映射过渡类型可选"color", "size",min_  = 0,max_ = 100,分别指定 visualMapPiecewise 组件的最小值和最大值,orient = "vertical"或"horizontal",split_number: int = 5,对于连续型数据,自动平均切分成几段,is_piecewise: bool = False,是否分段,pieces=[]指定每一段范围,如[{"min": 1500},{"min": 900, "max": 1500},{"max": 1500} ]);

(2)系列配置项

  • ItemStyleOpts:图元样式配置项,itemstyle_opts=opts.ItemStyleOpts(color=图形颜色,颜色可以使用 RGB 表示,比如 'rgb(128, 128, 128)',如果想要加上 alpha 通道表示不透明度,可以使用 RGBA,比如 'rgba(128, 128, 128, 0.5)',也可以使用十六进制格式,比如 '#ccc',color0:阴线图形的颜色,border_color=图形的描边颜色,border_color0=阴线图形的描边颜色,opacity=图形透明度,支持从 0 到 1 的数字为 0 时不绘制该图形,area_color=区域的颜色), 参考十六进制颜色转换;

  • LabelOpts:标签配置项, label_opts=opts.LabelOpts(is_show: bool = True是否显示标签,position=标签的位置,可选 ['top','left','right','bottom','inside','insideLeft','insideRight''insideTop','insideBottom', 'insideTopLeft','insideBottomLeft' 'insideTopRight','insideBottomRight'], formatter=模板变量有 {a}, {b},{c},{d},{e},分别表示系列名,数据名,数据值等,折线(区域)图、柱状(条形)图、K线图 : {a}(系列名称),{b}(类目值),{c}(数值), {d}(无)散点图(气泡)图 : {a}(系列名称),{b}(数据名称),{c}(数值数组), {d}(无)地图 : {a}(系列名称),{b}(区域名称),{c}(合并数值), {d}(无)饼图、仪表盘、漏斗图: {a}(系列名称),{b}(数据项名称),{c}(数值), {d}(百分比)示例:formatter: '{b}: {@score}');

  • LineStyleOpts:线样式配置项,linestyle_opts=opts.ItemStyleOpts(is_show= True是否显示,color=线条颜色, width= 1,线宽,curve = 线的弯曲度,0 表示完全不弯曲,type_: str = "solid", 线的类型可选:'solid', 'dashed', 'dotted',);

  • SplitLineOpts:分割线配置项, 在全局配置项中使用.set_global_opts(yaxis_opts=opts.AxisOpts(splitline_opts=opts.SplitLineOpts(is_show = True显示分割线)))。

可视化实战案例

本文主要介绍直角坐标系图表及其应用案例,其余图表将在下一次推文中介绍。直角坐标系图表继承自 RectChart 拥有一些相同或相似的方法。

  • 新增 X 轴数据.add_xaxis(xaxis_data=list数据)

  • 翻转 XY 轴数据,.reversal_axis()

  • 扩展 X/Y 轴,.extend_axis(xaxis_data=扩展X坐标数据项,xaxis=扩展 X 坐标轴配置项,yaxis=新增 Y 坐标轴配置项)

  • 新增 Y 轴数据.add_yaxis(series_name='',y_axis=序列数据,xaxis_index= 使用的 x 轴的 index,在单个图表实例中存在多个 x 轴的时候有用
    yaxis_index = 使用的 y 轴的 index,label_opts=标签配置项,markpoint_opts=标记点配置项,markline_opts=标记线配置项,tooltip_opts=提示框组件配置项)

#导入数据分析和量化常用库
import pandas as pd
import numpy as np
import talib as ta
import tushare as ts
#导入pyecharts
from pyecharts.charts import *
from pyecharts import options as opts
from pyecharts.commons.utils import JsCode

01

折线图Line

折线图是考察金融时间序列数据趋势最常用的图表之一。下面使用tushare旧接口在线获取股票交易数据进行可视化分析。

#股票数据可视化分析实例
#获取A股交易数据
def get_price(code='sh',start='2000-01-01',end='2022-03-07'):df=ts.get_k_data(code,start,end)df.index=pd.to_datetime(df.date)#将成交量单位改为10000手并取整数df['volume']=(df['volume']/10000).apply(int)return df[['open','close','high','low','volume']]
sh=get_price()
#sh.head()

最基本折线图,全使用默认参数。

g=(Line().add_xaxis(sh.index.strftime('%Y%m%d').tolist()).add_yaxis('',sh.close))
g.render_notebook()

c8c359353024c9742861460c1eb6fd71.png

添加全局和系列配置项。

#不同点位设置不同颜色
des=sh.close.describe()
v1,v2,v3=np.ceil(des['25%']),np.ceil(des['50%']),np.ceil(des['75%'])
pieces=[{"min": v3, "color": "red"},{"min": v2, "max": v3, "color": "blue"},{"min": v1, "max": v2, "color": "black"},{"max": v1, "color": "green"},]
#链式调用作用域()
g = (Line({'width':'100%','height':'480px'})#设置画布大小,px像素.add_xaxis(xaxis_data=sh.index.strftime('%Y%m%d').tolist())#x数据.add_yaxis(series_name="",#序列名称y_axis=sh.close.values.tolist(),#添加y数据is_smooth=True, #平滑曲线is_symbol_show=False,#不显示折线的小圆圈label_opts=opts.LabelOpts(is_show=False),linestyle_opts=opts.LineStyleOpts(width=2),#线宽markpoint_opts=opts.MarkPointOpts(data=[#添加标记符opts.MarkPointItem(type_='max', name='最大值'),opts.MarkPointItem(type_='min', name='最小值'),],symbol_size=[100,30]),markline_opts=opts.MarkLineOpts(#添加均值辅助性data=[opts.MarkLineItem(type_="average")], )).set_global_opts(#全局参数设置title_opts=opts.TitleOpts(title='上证指数走势', subtitle='2000年-2022年',pos_left='center'),tooltip_opts=opts.TooltipOpts(trigger="axis", axis_pointer_type="cross"),visualmap_opts=opts.VisualMapOpts(#视觉映射配置orient = "horizontal",split_number = 4,pos_left='center',is_piecewise=True,pieces=pieces,),).set_series_opts(markarea_opts=opts.MarkAreaOpts(#标记区域配置项data=[opts.MarkAreaItem(name="牛市", x=("20050606", "20071016")),opts.MarkAreaItem(name="牛市", x=("20140312", "20150612")),],)))
#使用jupyter notebook显示图形
g.render_notebook()

5dc6711dd406b6fd94f389a8e347c6cb.png

高阶应用:股价收益率与波动率可视化

此处代码较长省略。完整代码见Python金融量化知识星球。

30a812a85f2bee7e75d051d41bcd6cf1.png

02

柱状图Bar

下面以上证指数和创业板指数2010-2022年的年收益率构建柱状图,比较考察不同指数在各年的收益率情况。

indexs={'上证综指':'sh','创业板':'cyb'}
index_price=pd.DataFrame({index:get_price(code).close for index,code in indexs.items()}).dropna()
#index_price.head()
#指数年度收益率柱状图
index_ret=index_price/index_price.shift(1)-1
ss=index_ret.to_period('Y')
sss=(ss.groupby(ss.index).apply(lambda x: ((1+x).cumprod()-1).iloc[-1])*100).round(2)

使用全部默认参数下的年收益率柱状图。

g=(Bar().add_xaxis(sss.index.strftime('%Y').tolist()).add_yaxis("", sss['上证综指'].tolist()))
g.render_notebook()

51594ef848e88f3ee8973029dbe1fef0.png

添加全局配置项和系列配置项,使图表反映更多细节,同时可以根据时间段进行区域缩放。

g = (Bar().add_xaxis(sss.index.strftime('%Y').tolist()).add_yaxis("上证综指", sss['上证综指'].tolist(),gap="0%").add_yaxis("创业板", sss['创业板'].tolist(),gap="0%")#添加全局配置项.set_global_opts(title_opts=opts.TitleOpts(title="指数月收益率"),datazoom_opts=opts.DataZoomOpts(),#区域缩放配置项yaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(formatter="{value}%"))).set_series_opts(#添加序列配置项label_opts=opts.LabelOpts(is_show=True,formatter='{c}%')))
g.width = "100%" #设置画布比例
g.render_notebook()

4aa6d44d7337c7aa9bad9bf4d0b82c99.png

高阶应用:2021年全球资产收益率对比分析。

此处代码较长省略。完整代码见Python金融量化知识星球。

c106d6a0ddd693c83aa10b8e428ac9e7.png

03

K线图Kline

K线图是对证券交易行情可视化的最基本图表之一,也是我们股票量化分析的最基本工具。

#计算指标
def get_data(code,start='2021-01-01',end=''):df=get_price(code,start,end)df['ma5']=df.close.rolling(5).mean()df['ma20']=df.close.rolling(20).mean()df['macd'],df['macdsignal'],df['macdhist']=ta.MACD(df.close,fastperiod=12,slowperiod=26,signalperiod=9)return df.dropna().round(2)
df=get_data('sh')
#df.head()

使用默认参数可以得到最基本的K线图。

g = (Kline().add_xaxis(df['2022':].index.strftime('%Y%m%d').tolist()) #y轴数据,默认open、close、low、high,转为list格式.add_yaxis("",y_axis=df[['open', 'close', 'low', 'high']]['2022':].values.tolist()))
g.render_notebook()

ba336b9e0545945668b80ce778c4370d.png

添加全局和系列配置项,强化细节展示。

def draw_kline(data):g = (Kline().add_xaxis(data.index.strftime('%Y%m%d').tolist()) #y轴数据,默认open、close、high、low,转为list格式.add_yaxis(series_name="",y_axis=data[['open', 'close', 'low', 'high']].values.tolist(),itemstyle_opts=opts.ItemStyleOpts(color="red",#阳线红色color0="green",#阴线绿色border_color="red",border_color0="green",),markpoint_opts=opts.MarkPointOpts(data=[#添加标记符opts.MarkPointItem(type_='max', name='最大值'),opts.MarkPointItem(type_='min', name='最小值'),]),#添加辅助性,如某期间内最大max最小值min均值averagemarkline_opts=opts.MarkLineOpts(data=[opts.MarkLineItem(type_="average",value_dim="close")], ),).set_global_opts(datazoom_opts=[opts.DataZoomOpts()],#滑动模块选择title_opts=opts.TitleOpts(title="股票K线图",pos_left='center'),))return g
draw_kline(df).render_notebook()

eccdf18eebc3f7773f935d784e7f7ba8.png

高阶应用:K线图叠加成交量和技术指标。

#完整代码见Python金融量化知识星球。def kline_volume_ta(data):  pass
kline_volume_ta(df).render_notebook()

0607f9363e85826e5949a124ffde3098.png

04

散点图Scatter

散点图通常用来反映两个变量之间的统计关系。pyecharts还支持展示多变量随着时间的变动趋势。

#创业板和上证综指历年收益率数据
#sss.head()
g = (Scatter().add_xaxis([str(d) for d in sss.index.year]).add_yaxis("上证综指(%)",sss['上证综指'].tolist()).add_yaxis("创业板(%)", sss['创业板'].tolist()).set_global_opts(title_opts=opts.TitleOpts(title="指数历年收益率"),visualmap_opts=opts.VisualMapOpts(type_="size", is_show=False),xaxis_opts=opts.AxisOpts(type_="category",axisline_opts=opts.AxisLineOpts(is_on_zero=False),),yaxis_opts=opts.AxisOpts(is_show=False,)))
g.width = "100%"
g.render_notebook()

25057773fd2d1f58eae164cee7d5b565.png

g = (Scatter().add_xaxis(sss['上证综指'].tolist()).add_yaxis("", sss['创业板'].tolist(),symbol_size=20,label_opts=opts.LabelOpts(is_show=False)).set_global_opts(title_opts=opts.TitleOpts('上证综指 VS 创业板'),tooltip_opts=opts.TooltipOpts(is_show=False),xaxis_opts=opts.AxisOpts(name='上证综指',type_="value", splitline_opts=opts.SplitLineOpts(is_show=True),                     axislabel_opts=opts.LabelOpts(formatter='{value}%')),yaxis_opts=opts.AxisOpts(name='创业板',type_="value",splitline_opts=opts.SplitLineOpts(is_show=True),                     axislabel_opts=opts.LabelOpts(formatter='{value}%'),)))
g.width = "100%"
g.render_notebook()

e3624dd73c88cb7f084bb2a0a2294a79.png

05

热力图HeatMap

热力图实际上是个三维结构,考察两个特征维度下值的变动趋势。热力图可以应用在指数周期变化和热点板块轮动分析等。下面以指数近10年来月收益率的涨跌幅为例构建热力图。

heat_data=(index_price/index_price.shift(1)-1).to_period('M')
heat_data=heat_data.groupby(heat_data.index).apply(lambda x: ((((1+x).cumprod()-1).iloc[-1])*100).round(2))
heat_data=heat_data['2011':'2021']
#heat_data.tail()

构建热力图的难点在于数据项value的值。

value = [[i,j,heat_data['上证综指'][str(2011+i)+'-'+str(1+j)]] for i in range(11) for j in range(12)]
year=[str(i) for i in range(2011,2022)]
month=[str(i)+'月' for i in range(1,13)]
g = (HeatMap().add_xaxis(year).add_yaxis("", month, value,label_opts=opts.LabelOpts(is_show=True, position="inside"),).set_global_opts(title_opts=opts.TitleOpts(title="上证综指月收益率(%)"),visualmap_opts=opts.VisualMapOpts(is_show=False,min_=-30,max_=30,)))
g.render_notebook()

80dfd55a792a161eba690b160b7c7e2c.png

高阶应用:根据涨跌幅范围设置不同显示颜色

#不同点位设置不同颜色
代码省略。完整代码见Python金融量化知识星球。

1326482b18adb53653c0eeccfa8e345b.png

结语

本文简单介绍了 Pyecharts (V1)基本情况、安装、模块调用和参数设置,并以股票交易数据为例,为大家展示了使用 Pyehcarts 构建直角坐标系下常用的图表,包括折线图、柱状图、K线图和热力图等。下一篇推文将进一步介绍Pyecharts其他图表的构建方法,包括日历图、仪表盘、地图、关系图等等,同时分享这些常见的图表在金融量化上的应用实例。

9ccaa5e0f9b15e092ed93a9ee4390cab.png

关于Python金融量化

6e5e737bda2608962cbce459eadccd5b.png

专注于分享Python在金融量化领域的应用。加入知识星球,可以免费获取30多g的量化投资视频资料、量化金融相关PDF资料、公众号文章Python完整源码、量化投资前沿分析框架,与博主直接交流、结识圈内朋友等。添加博主微信(sky2blue2)可咨询相关优惠信息。

a10a0ba291fa911937ffaa442d8e4c4b.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/71790.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

4.5k star,一款开源的数据可视化分析平台,提供多种大屏模板,非常炫酷

点击关注公众号,实用技术文章及时了解 DataGear是一款开源的数据可视化分析平台,可自由制作任何您想要的数据可视化看板,支持接入SQL、CSV、Excel、HTTP接口、JSON等多种数据源。系统主要功能包括:数据管理、SQL工作台、数据导入/…

干货: 如何避免让人一眼就看出来你的内容是ChatGPT写的?

人们对chatGPT的众多抱怨之一是它无法为每个用户提供想要内容。主要体现在其回答的内容乏味、机械,以至于如何让人很容易就看出来这是由ChaGPT写的。 试试这种方式解决这个问题吧(下文【】内文字需要自己根据自己想要生成的内容,找到合适的自…

《聊天机器人观后感》

第七章 人工智能 智力是一种适应变化的能力 ---------史蒂芬 霍金 什么是人工智能(AI) 但是我不予苟同,我想说的是:一句名言解释什么是人工智能。 指测试者与被测试者(一个人和一台机器)隔开的情况下&a…

这几十部电影,我看以后都写了观后感

没有对比就没有伤害,发现近3年来的观影频率出现了较大的波动。2016年忙得昏天暗地,竟然还抽空看了11部电影。如果片子还可以,我一般都会写篇影评。2017年影评写得少了,而且发现影评越来越难写了,一方面是自己有一个心理…

“硅谷之父”传奇:拯救斯坦福大学、培养大批高科技人才、指导创立惠普

作者 | 年素清 责编 | 王晓曼 出品 | 程序人生 (ID:coder _life) 有人说,当今硅谷之中99%的电子工业都与一个叫做弗雷德•特曼(Frederick Emmons Terman)有关。 弗雷德•特曼曾担任美国斯坦福大学校长&…

专栏 | 香侬科技独家对话斯坦福大学计算机学院教授Dan Jurafsky

专栏介绍:《香侬说》为香侬科技打造的一款以机器学习与自然语言处理为专题的访谈节目。由斯坦福大学,麻省理工学院, 卡耐基梅隆大学,剑桥大学等知名大学计算机系博士生组成的“香侬智囊”撰写问题,采访顶尖科研机构(斯…

chatgpt赋能python:Python强解WiFi密码:一种简单而有效的方式

Python强解WiFi密码:一种简单而有效的方式 无线网络连接是我们生活中的常见需求,但是忘记WiFi密码是一个让人感到很困扰的问题。幸运的是,Python可以让我们更容易地找回WiFi密码。本文将介绍如何使用Python强解WiFi密码。 什么是Python&…

有主题的图文内容创作 | AIGC实践

话说,昨天我发布了第一篇,内容由ChatGPT和Midjourney协助完成的文章:胡同与侏罗纪公园的时空交错 | 胡同幻想 在这篇文章中,大约70%图文内容由ChatGPT和Midjourney输出。我个人参与的部分,主要是提出指令(P…

【文本分析】基于粤港澳大湾区博物馆访客评价的文本分析

此文是2021年初在深圳大学文化产业研究院黄老师的指导下,与吴同学合作完成的,且于2021年4月发表于《文化深圳》杂志第一期。 文章目录 1 背景2 研究思路3 数据来源4 数据基本情况4.1 粤港澳大湾区的博物馆数据统计4.2 粤港澳大湾区各城市博物馆的平均得分…

维达东南亚新总部正式投入运营;西门子能源在粤港澳大湾区持续深化务实合作 | 美通企业日报...

美通社要闻摘要: 维达东南亚新总部正式投入运营。西门子能源在粤港澳大湾区持续深化务实合作。三星电子首款12纳米级DDR5 DRAM开发成功。日赛谷丽思卡尔顿隐世酒店将在2023年第二季度于四川九寨沟启幕。苏州AC酒店正式启幕。2023年君澜预计开业20家酒店。阿迪达斯和…

洲际酒店集团加码粤港澳大湾区和海南自贸港,三亚逸衡酒店、金普顿酒店将面世...

上海2021年7月29日 /美通社/ -- 作为最早进驻中国市场的国际酒店管理集团之一,洲际酒店集团在华37年来紧跟国家战略和区域政策发展,始终秉承践行“在中国为中国”的承诺。近年来,洲际酒店集团更是持续聚焦施力于包括粤港澳大湾区、海南自贸港…

开源网安亮相粤港澳大湾区CIO高峰论坛,保障企业数字化安全转型

近日,由深圳市工业化与信息化局、深圳市科学技术协会指导,深圳市CIO协会主办的“2023中国(深圳)数字化转型大会暨粤港澳大湾区CIO高峰论坛”圆满完成。开源网安作为拥有软件安全领域全链条产品的厂商,携多年来打造的国产化软件安全替代方案&a…

《区块链助力粤港澳大湾区一体化发展报告(2022)》发布

7月19日,中国(深圳)综合开发研究院主办的《数“链”大湾区——区块链助力粤港澳大湾区一体化发展报告(2022)》发布会在深圳举行。 报告提出,以区块链为代表的数字技术在破解粤港澳大湾区制度差异坚冰、支撑…

重磅!首届粤港澳大湾区新能源智能汽车大数据创新竞赛启动

赛事介绍 为推动汽车电动化、智能化、网联化、共享化发展,聚力建设“智车之城”、“超充之都”和新能源智能汽车解决方案的策源地、生产地,促进科技成果转化、高层次人才的引进与培养、培育,壮大新产业、新业态、新模式,基于广州市…

数字引领未来,第七届粤港澳大湾区跨界融合产业创新交流会圆满举行

据《中国数字经济发展报告(2022年)》显示,2021年,我国数字经济规模达到45.5万亿元,占GDP比重达到39.8%,数字经济在国民经济中的地位更加稳固、支撑作用更加明显,产业数字化转型对国家经济和企业…

我为什么鼓励你读博士?

点击上方“码农突围”,马上关注 这里是码农充电第一站,回复“666”,获取一份专属大礼包 真爱,请设置“星标”或点个“在看” 看过《水浒传》的朋友都知道,梁山的一百单八将因为各种理由加入了水寨,走上了劫…

滑动验证码破解

背景 最近由于需要爬取一些数据,但是这个数据必须在登陆状态下才能得到,调研了很多爬虫的反爬技术的攻防,发现采用一些比较底层的爬虫框架虽然速度更快扩展性更好,但是成本比较高,目标网站任何改动都可以让整个爬虫崩…

So easy!同时登陆两个或多个Mac版微信和QQ

如今,微信和QQ已经不单单是简单的社交软件了,也成了工作必备软件,工作中用它传个文件,发个通知,不知道有多方便。 但是很多人希望将工作圈和生活圈分开,有人想出拿两部手机的方法,倒是可以&…

保证同一个账号同时只能在一个设备上登录

2019独角兽企业重金招聘Python工程师标准>>> 一、使用redis存token redis key设计 access_token_{token}:{userInfoJsonStr} 用户登录成功后,把token作为key,用户信息做为value。作用:通过token可以查到userinfo token_by_userId_…

怎么实现同一账号只能在一台设备登录

同一账号只能在一台设备登录实现思路。 注意:登录是在白名单(直接放行的接口)。生成的token携带账号信息。 1.用户每次登录生成token时,将账号当成key,token当成value,以token的过期时间存入redis中。 2.用户访问的…