转自知乎大神Mr数据杨
原文: https://zhuanlan.zhihu.com/p/358471558
最近想研究一下pycharts画关联图的功能,在CSDN上找了一个代码
https://blog.csdn.net/LSGO_MYP/article/details/117463653
发现报错(上一篇文章),解决了之后虽然不报错,但是渲染不出来,我一度十分不理解,因为其他图片是能出来的,这也就说明不是修改hosts的问题,我就逐行逐字看.json文件,奈何不是专业的,也看不出什么456,所以就又想在网上搜其他代码,放弃这个图了
可谁知啊!!
就让我搜到了这一篇,同样的图,这个代码就可以出图!!
庆祝!!
import json
from pyecharts import options as opts
from pyecharts.charts import Graph
with open("data/les-miserables.json", "r", encoding="utf-8") as f:
j = json.load(f)
nodes = j["nodes"]
links = j["links"]
categories = j["categories"]
g = (
Graph(init_opts=opts.InitOpts(width="1000px", height="600px"))
.add(
"",
nodes=nodes,
links=links,
categories=categories,
layout="circular",
is_rotate_label=True,
linestyle_opts=opts.LineStyleOpts(color="source", curve=0.3),
label_opts=opts.LabelOpts(position="right"),
)
.set_global_opts(
title_opts=opts.TitleOpts(title="和弦关系图"),
legend_opts=opts.LegendOpts(orient="vertical", pos_left="2%", pos_top="20%"),
)
# .render("和弦关系图.html")
)
g.render_notebook()
上述代码我是做了修改才通的
具体是把打开文件改成
with open("data/les-miserables.json", "r", encoding="utf-8-sig") as f:
layout改成
layout=None,
最后一行
g.render('graph_les_miserables.html')
就成啦,最终图是这样的
朋友说看起来像一朵合欢花hhhhh