想按照Topic1-Topic7排序,這個應該如何調整啊,在資料中是按照這個順序排的,但是顯示就亂了!請各位大蝦幫忙看下唄!謝謝啊

代碼如下:
import pandas as pd
from pyecharts.charts import Page, Sankey
from pyecharts import options as opts
# 讀取csv檔案
data = pd.read_csv('sankey.csv', encoding='utf-8', header=None)
# 生成nodes
nodes = []
# 在第一列"source"中查找添加節點名稱
for i in data[0].unique():
dic = {'name': i}
nodes.append(dic)
# 在第二列"target"中查找添加節點名稱
for i in data[1].unique():
dic = {'name': i}
if dic not in nodes:
nodes.append(dic)
# 生成links1
links = []
for i in data.values:
dic = {'source': i[0], 'target': i[1], 'value': i[2]}
links.append(dic)
# 讀取資料中的標題、副標題和圖例名稱
titleN = data.values[0][5]
subtitleN = data.values[1][5]
serialN = data.values[2][5]
# 生成可視化結果
c = (
Sankey()
.add(
serialN,
nodes,
links,
# 設定主圖在圖片區域的相對位置
pos_top="10%", pos_bottom="5%", pos_right="10%", pos_left="5%",
# 桑基圖中每個矩形節點的寬度,每一列任意兩個矩形節點之間的間隔,
# 節點的對齊方式,默認是雙端對齊,可以設定為左對齊或右對齊,對應的值分別是"left""right""justify"
node_width=20, node_gap=8, node_align="left",
# 桑基圖中節點的布局方向,可以是水平的從左往右,也可以是垂直的從上往下。
# 對應的引數值分別是 horizontal, vertical。
orient="horizontal",
# 控制節點拖拽的互動,默認開啟。開啟后,用戶可以將圖中任意節點拖拽到任意位置。若想關閉此互動,只需將值設為 false 就行了。
is_draggable=True,
# 滑鼠 hover 到節點或邊上,相鄰接的節點和邊高亮的互動,默認關閉,可手動開啟。
# false:hover 到節點或邊時,只有被 hover 的節點或邊高亮。
# true:同 'allEdges'。
# 'allEdges':hover 到節點時,與節點鄰接的所有邊以及邊對應的節點全部高亮。hover 到邊時,邊和相鄰節點高亮。
# 'outEdges':hover 的節點、節點的出邊、出邊鄰接的另一節點 會被高亮。hover 到邊時,邊和相鄰節點高亮。
# 'inEdges':hover 的節點、節點的入邊、入邊鄰接的另一節點 會被高亮。hover 到邊時,邊和相鄰節點高亮。
focus_node_adjacency=True,
# 線條樣式配置項,
linestyle_opt=opts.LineStyleOpts(opacity=0.2,
# 圖形透明度。支持從 0 到 1 的數字,為 0 時不繪制該圖形。
curve=0.5,
# 線的彎曲度,0 表示完全不彎曲
color="source",
type_="dotted"),
# 線的型別。可選:'solid', 'dashed', 'dotted'
label_opts=opts.LabelOpts(position="right",
# 標簽的位置。可選
# 'top','left','right','bottom','inside','insideLeft','insideRight'
# 'insideTop','insideBottom', 'insideTopLeft','insideBottomLeft'
# 'insideTopRight','insideBottomRight'
# 文字的字體大小
font_size=12,
), )
.set_global_opts(
# 設定標題和副標題
title_opts=opts.TitleOpts(title=titleN, subtitle=subtitleN),
tooltip_opts=opts.TooltipOpts(trigger="item", trigger_on="mousemove"),
# 是否顯示圖例
legend_opts=opts.LegendOpts(is_show=True,
item_width=25, item_height=14,
legend_icon="pin",
# 右側靠齊
pos_right="5%", )
)
)
# 輸出html可視化結果
c.render('sankey.html')
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/261506.html
上一篇:請求大佬回答
下一篇:新手Python求助
