1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112
| import akshare as ak import pyecharts.options as opts from pyecharts.charts import Bar, Line from pyecharts.commons.utils import JsCode
fund_em_info_df = ak.fund_em_open_fund_info(fund="006008", indicator="单位净值走势")
fund_name = '诺安积极配置混合C' x_data = fund_em_info_df['净值日期'].tolist() y_data = fund_em_info_df['单位净值'].tolist() z_data = fund_em_info_df['日增长率'].tolist()
background_color_js = ( "new echarts.graphic.LinearGradient(0, 0, 0, 1, " "[{offset: 0, color: '#c86589'}, {offset: 1, color: '#06a7ff'}], false)" ) area_color_js = ( "new echarts.graphic.LinearGradient(0, 0, 0, 1, " "[{offset: 0, color: '#eb64fb'}, {offset: 1, color: '#3fbbff0d'}], false)" )
bar = ( Bar(init_opts=opts.InitOpts(bg_color=JsCode(background_color_js), width='700px', height='450px')) ## width, height修改画布大小 .add_xaxis(xaxis_data=x_data) .add_yaxis( series_name="", y_axis=z_data, label_opts=opts.LabelOpts(is_show=False), itemstyle_opts=opts.ItemStyleOpts( ### 调用js代码绘制不同颜色 color=JsCode( """ function(params) { var colorList; if (params.data >= 0) { colorList = '#FF4500'; } else { colorList = '#14b143'; } return colorList; } """ ) ) ) .set_global_opts( title_opts=opts.TitleOpts( title=fund_name, pos_bottom="90%", pos_left="center", title_textstyle_opts=opts.TextStyleOpts(color="#fff", font_size=16), ), xaxis_opts=opts.AxisOpts( type_="category", boundary_gap=False, axislabel_opts=opts.LabelOpts(margin=30, color="#ffffff63"), axisline_opts=opts.AxisLineOpts(is_show=False), axistick_opts=opts.AxisTickOpts( is_show=True, length=25, linestyle_opts=opts.LineStyleOpts(color="#ffffff1f"), ), splitline_opts=opts.SplitLineOpts( is_show=True, linestyle_opts=opts.LineStyleOpts(color="#ffffff1f") ), ), yaxis_opts=opts.AxisOpts( type_="value", position="left", axislabel_opts=opts.LabelOpts(margin=20, color="#ffffff63"), axisline_opts=opts.AxisLineOpts( linestyle_opts=opts.LineStyleOpts(width=2, color="#fff") ), axistick_opts=opts.AxisTickOpts( is_show=True, length=15, linestyle_opts=opts.LineStyleOpts(color="#ffffff1f"), ), splitline_opts=opts.SplitLineOpts( is_show=True, linestyle_opts=opts.LineStyleOpts(color="#ffffff1f") ), ),
datazoom_opts=[opts.DataZoomOpts(), opts.DataZoomOpts(type_="inside")] ## 时间轴显示并可同通过鼠标滑动 ) )
line = ( Line(init_opts=opts.InitOpts(bg_color=JsCode(background_color_js))) .add_xaxis(xaxis_data=x_data) .add_yaxis( series_name="", y_axis=[round(i * 10, 2) for i in y_data], is_smooth=True, is_symbol_show=True, symbol="circle", symbol_size=6, linestyle_opts=opts.LineStyleOpts(color="#fff"), label_opts=opts.LabelOpts(is_show=True, position="top", color="white"), itemstyle_opts=opts.ItemStyleOpts( color="red", border_color="#fff", border_width=3 ), tooltip_opts=opts.TooltipOpts(is_show=False), areastyle_opts=opts.AreaStyleOpts(color=JsCode(area_color_js), opacity=1), ) )
bar.overlap(line) ## 混合柱状图和线图 bar.render_notebook()
|