BigCharts - 量化数据可视化探索和分析
由jliang创建,最终由small_q 被浏览 1205 用户
BigCharts 介绍
BigCharts是专业的金融市场和量化投资数据可视化探索与分析工具,致力于为用户提供高效、易用、可定制的数据可视化解决方案,提升用户在数据探索、分析和决策过程中的效率与准确性,成为量化投资者和金融分析师的得力助手。
快速入门
- import bigcharts
- bigchart.Line(…) 构建图表
- .render() 显示图表
- 传入 DAI SQL 作为数据源
import bigcharts
bigcharts.Line("SELECT date, close FROM cn_stock_bar1d WHERE date BETWEEN '2024-01-01' AND '2024-03-01' AND instrument='300417.SZ' ")
也可以传入 pandas DataFrame
import bigcharts
import dai
df = dai.query("SELECT date, volume FROM cn_stock_bar1d WHERE instrument='300417.SZ' ", filters={"date": ["2024-01-01", "2024-03-01"]})
bar = bigcharts.Bar(df, title="交易量")
bar.render()
更多使用参考 BigCharts Demos。
功能
提供丰富的图表类型,包括折线图、柱状图、散点图、K线图、面积图等,满足不同类型数据的展示需求;
内置多种金融市场常用的技术分析工具,例如移动平均线、布林带、MACD、RSI等,助力用户深入挖掘市场趋势和交易信号;
支持自定义指标和策略编写,用户可以根据自身需求对图表进行定制,并实现量化投资策略的可视化验证。
\
核心概念
import bigcharts
bigcharts.Bar
bigcharts.Bar3D
bigcharts.Boxplot
bigcharts.Calendar
bigcharts.EffectScatter
bigcharts.Grid
bigcharts.HeatMap
bigcharts.HtmlWidget
bigcharts.Kline
bigcharts.Line
bigcharts.Line3D
bigcharts.Page
bigcharts.PictorialBar
bigcharts.Pie
bigcharts.Radar
bigcharts.Scatter
bigcharts.Scatter3D
bigcharts.Tab
bigcharts.Table
bigcharts.WordCloud
# 图表 + 数据 + 参数
bigcharts.SomeChart(
数据: DAI SQL | pandas.DataFrame ...
title: str, # 标题
.. 其他参数,
)
参数说明
Table - 表格
from bigcharts import Table
options = {
"lengthMenu": [10, 25, 50, 100, 1000, -1], # 分页条数
"pageLength": 10, #每页默认条数
"buttons": [
{
"extend": "csvHtml5", # ["copyHtml5", "csvHtml5", "excelHtml5"] 下载数据类型
"text": "下载", #按钮名称
"title": "csv", #下载文件名称
}
],
"layout": { # 布局
"topStart": "pageLength", # 右上方 每页长度
"topEnd": "search", # 左上方 搜索框
"bottomStart": "buttons", # 右下方 按钮
"bottomEnd": "paging", # 左下方 页码
},
}
Table("SELECT date, close, high FROM cn_stock_bar1d WHERE date BETWEEN '2024-01-01' AND '2024-03-20' AND instrument = '000001.SZ' ", options=options) #.render(display=False).data
折线图
from bigcharts import Line, opts, JsCode
line= Line(
"SELECT date, close,open FROM cn_stock_bar1d WHERE date BETWEEN '2024-01-01' AND '2024-03-20' AND instrument = '000001.SZ'",
title="折线图", # 标题
datazoom=True, #是否需要时间轴
legend_position="center", # 图标位置
init_opts=opts.InitOpts( # 初始化
width="100%", # 宽度
height="500px", # 高度
is_horizontal_center=True, # 否水平居中显示。
theme="chalk", # 主题 ["light", "dark", "white", "chalk", "essos" ] # 更多的可以去看下pyecharts的主题
bg_color="#F0F0F0", # 背景色 也可以是字典 {"color": "#F0F0F0"}
),
global_tooltip_opts=opts.TooltipOpts( # 图表工具提示
is_show=True, # 是否展示
trigger="axis", # axis 在坐标轴上触发, item 在数据项上触发
# formatter="{a} <br/>{b}: {c}" # 自定义格式 可以自定义工具提示的内容,可以是一个字符串模板或一个函数
formatter=JsCode("""
function (params) {
return params[0].seriesName + '<br/>' + params[0].name + ': ' + params[0].value + ' units';
}
"""),
background_color="rgba(255, 255, 255, 0.8)", # 背景颜色
border_color="#333333", # 边框颜色
border_width=1, # 边框宽度
padding=[5, 10], # 内边距
textstyle_opts={"color": "#000000", "fontSize": 12},)# 文本样式
)
line.set_series_opts( #设置某条线的样式
series_names="close", # 那一条
areastyle_opts=opts.AreaStyleOpts(
opacity=0.5, #透明度
color=JsCode(
"""
new echarts.graphic.LinearGradient(0, 0, 0, 1, [
{offset: 0, color: 'rgba(219, 51, 51, 0.16)'},
{offset: 1, color: 'rgba(219, 51, 51, 0.00)'}
])
"""
),# 盖住到x轴的颜色
),
itemstyle_opts=opts.ItemStyleOpts( # 线条的样式
color="#E74C3C",
border_color="#333333", # 边框颜色
border_width=2, # 边框宽度
border_type="solid", # 边框类型
border_radius=5, # 圆角半径
opacity=0.8, # 透明度
area_color="#FFCCCB" # 区域颜色
),
emphasis={"focus": "series"} # hover其他线条
)
\