用pyecharts将含有“标签”和“类别”两列的DataFrame数据,绘制成一个以“类别”为横轴,“标签”列为纵轴,展示类别列中不同属性所对应的标签总和的柱形图
时间: 2023-10-01 18:05:39 浏览: 60
好的,根据你的要求,我重新为你编写了代码:
```python
import pandas as pd
from pyecharts import options as opts
from pyecharts.charts import Bar
# 创建DataFrame
data = pd.DataFrame({
'category': ['A', 'A', 'B', 'B', 'C', 'C'],
'tag': ['tag1', 'tag2', 'tag1', 'tag2', 'tag1', 'tag2'],
'count': [10, 20, 30, 40, 50, 60]
})
# 按照类别和标签分组,计算标签总数
grouped = data.groupby(['category', 'tag']).sum().reset_index()
# 创建柱形图
bar = (
Bar()
.add_xaxis(grouped['category'].unique().tolist())
.set_global_opts(title_opts=opts.TitleOpts(title="标签总数柱形图", subtitle=""))
.set_series_opts(label_opts=opts.LabelOpts(position='top'))
)
# 添加不同标签的柱子
for tag in grouped['tag'].unique().tolist():
bar.add_yaxis(tag, grouped[grouped['tag'] == tag]['count'].tolist())
# 设置坐标轴标签
bar.set_series_opts(
label_opts=opts.LabelOpts(is_show=True),
markline_opts=opts.MarkLineOpts(
data=[opts.MarkLineItem(type_="average", name="平均值")]
)
)
bar.set_global_opts(xaxis_opts=opts.AxisOpts(name="类别"), yaxis_opts=opts.AxisOpts(name="标签总数"))
# 渲染图表
bar.render_notebook()
```
这段代码与之前的代码相似,只是在最后添加了设置坐标轴标签的代码。具体来说,通过set_series_opts方法设置了标签的属性,包括是否展示标签和标记线的位置,然后通过set_global_opts方法设置了坐标轴的标签名称。最终的图表中,横轴为类别,纵轴为标签总数,同时展示了不同标签的柱子。
阅读全文