pyecharts设置桑基图节点颜色
时间: 2023-09-19 13:11:04 浏览: 164
在 Pyecharts 中,可以通过 `set_node()` 方法来设置桑基图中节点的颜色。具体方法如下:
1. 首先,需要导入 `Sankey()` 类和 `Node()` 类:
```python
from pyecharts.charts import Sankey
from pyecharts import options as opts
from pyecharts.commons.utils import JsCode
from pyecharts.globals import ThemeType
```
2. 然后,创建一个 Sankey 实例,并添加节点:
```python
sankey = Sankey(init_opts=opts.InitOpts(theme=ThemeType.LIGHT))
sankey.add(
series_name="",
nodes=[
{"name": "A"},
{"name": "B"},
{"name": "C"},
{"name": "D"},
{"name": "E"},
],
)
```
3. 接下来,调用 `set_node()` 方法来设置节点的颜色。需要注意的是,这里使用了 `JsCode()` 类来生成 JavaScript 代码,以便在设置颜色时可以使用 JavaScript 语法:
```python
sankey.set_node(
itemstyle_opts=opts.ItemStyleOpts(
color=JsCode(
"""
function(params) {
if (params.name === 'A') {
return '#FF0000';
} else if (params.name === 'B') {
return '#00FF00';
} else if (params.name === 'C') {
return '#0000FF';
} else if (params.name === 'D') {
return '#FFFF00';
} else if (params.name === 'E') {
return '#FF00FF';
}
}
"""
)
)
)
```
在上面的代码中,我们使用了 `if-else` 语句来判断节点的名称,然后返回相应的颜色。可以根据需要自行修改颜色和判断条件。
4. 最后,调用 `render()` 方法生成图表:
```python
sankey.render("sankey_node_color.html")
```
完整代码:
```python
from pyecharts.charts import Sankey
from pyecharts import options as opts
from pyecharts.commons.utils import JsCode
from pyecharts.globals import ThemeType
sankey = Sankey(init_opts=opts.InitOpts(theme=ThemeType.LIGHT))
sankey.add(
series_name="",
nodes=[
{"name": "A"},
{"name": "B"},
{"name": "C"},
{"name": "D"},
{"name": "E"},
],
)
sankey.set_node(
itemstyle_opts=opts.ItemStyleOpts(
color=JsCode(
"""
function(params) {
if (params.name === 'A') {
return '#FF0000';
} else if (params.name === 'B') {
return '#00FF00';
} else if (params.name === 'C') {
return '#0000FF';
} else if (params.name === 'D') {
return '#FFFF00';
} else if (params.name === 'E') {
return '#FF00FF';
}
}
"""
)
)
)
sankey.render("sankey_node_color.html")
```
阅读全文