这是一个 Python 函数,用于生成一个包含多个柱状图的 Tab 控件,并将其渲染到 Jupyter Notebook 中展示。函数接受两个参数:data 和 name。其中,data 是一个数据集,name 是数据集中的一个列名,表示要进行分组比较的字段。函数会根据 name 字段对数据进行分组,并针对每个分组生成一个柱状图。每个柱状图展示了不同分组对应的某个指标的比较情况。\n\npython\ndef getTab(data,name):\n def getBar(name,col):\n bar = (\n Bar()\n .add_xaxis(temp.index.tolist())\n .add_yaxis("{}".format(col),temp[col].round(2).tolist())\n .set_series_opts(\n label_opts=opts.LabelOpts(is_show=False)\n ,markpoint_opts=opts.MarkPointOpts(\n data=[\n opts.MarkPointItem(type_="max", name="最大值"),\n opts.MarkPointItem(type_="min", name="最小值"),\n ]\n )\n )\n .set_global_opts(\n title_opts=opts.TitleOpts(title="不同{} {}对比图".format(name,col))\n ,tooltip_opts=opts.TooltipOpts(\n is_show=True, trigger="axis", axis_pointer_type="cross"\n )\n ,xaxis_opts=opts.AxisOpts(\n type_="category",axispointer_opts=opts.AxisPointerOpts(is_show=True, type_="shadow"),\n )\n ,yaxis_opts=opts.AxisOpts(\n name="{}".format(col),\n type_="value",\n min_=round(min(temp[col].tolist())*0.8,0),\n )\n )\n )\n return bar\n temp = data.pivot_table(index=name).T[1:].T\n # .T[1:].T是为了把ID列隐藏掉\n #pivot_table 默认的计算方法为 mean\n #因此对于 性别,是否高血压这些二值类的字段,结果意义为,取值为1时的占比\n #即 对于 性别,是否高血压 分别为 男性占比 和 高血压的占比\n col_list = temp.columns.tolist()\n tab = Tab()\n for col in col_list:\n tab.add(getBar(name,col),col)\n return tab.render_notebook()\n\n\n该函数通过 pivot_table 函数对数据进行分组,然后使用 Bar 类生成柱状图,并将每个柱状图添加到 Tab 控件中,最终渲染到 Jupyter Notebook 中。


原文地址: https://www.cveoy.top/t/topic/ptbt 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录