Python绘制小兰当月日常生活的收支明细桑基图
时间: 2024-06-01 13:06:05 浏览: 180
JavaFX 绘制桑基图(SankeyDiagram)
Python绘制小兰当月日常生活的收支明细桑基图需要使用到pandas、matplotlib和pyecharts等库来实现。步骤如下:
1. 导入所需库
```
import pandas as pd
import matplotlib.pyplot as plt
from pyecharts.charts import Sankey
from pyecharts import options as opts
```
2. 准备数据
假设小兰当月的收支明细数据如下:
| 类别 | 金额 |
| --- | --- |
| 食品 | 3000 |
| 住房 | 4000 |
| 交通 | 1000 |
| 娱乐 | 2000 |
| 其他 | 1000 |
将数据转化为pandas的DataFrame格式:
```
data = {'category': ['income', 'food', 'housing', 'transportation', 'entertainment', 'others'],
'value': [0, 3000, 4000, 1000, 2000, 1000]}
df = pd.DataFrame(data)
```
3. 绘制桑基图
使用pyecharts的Sankey模块绘制桑基图,并设置图形属性:
```
fig = Sankey()
fig.add("",
nodes=df['category'],
links=[(0, i+1, df.iloc[i]['value']) for i in range(len(df))],
linestyle_opt=opts.LineStyleOpts(opacity=0.2, curve=0.5, color="source"),
label_opts=opts.LabelOpts(position="right"),
node_gap=30,
node_width=25,
node_padding=50,
layout_direction="TB",
)
fig.set_global_opts(title_opts=opts.TitleOpts(title="小兰当月收支明细桑基图"))
fig.render("sankey.html")
```
4. 展示图形
使用matplotlib展示生成的html文件,代码如下:
```
from IPython.display import HTML
HTML(filename="./sankey.html")
```
这样就可以在notebook中看到生成的桑基图了。
阅读全文