【和弦图】

2023年7月14日12:09:31

`

https://zhuanlan.zhihu.com/p/536053415

# -*- coding: utf-8 -*-
"""
Created on Thu Oct  6 15:48:16 2022

@author: Lenovo
"""
from pylab import mpl

#mpl.rcParams['font.sans-serif'] = ['SimHei']
mpl.rcParams['font.sans-serif'] = ['Microsoft YaHei'] # 指定默认字体:解决plot不能显示中文问题
mpl.rcParams['axes.unicode_minus'] = False  # 解决保存图像是负号'-'显示为方块的问题
import os
import sys
import matplotlib.pyplot as plt
import numpy as np
from mpl_chord_diagram import chord_diagram
flux = np.array([
    # [98613000000,734000000,185000000],
    # [14000000,11719000000,2000000],
    # [579000000,24000000,75951000000] #95-10
    
    # [74229000000,11200000000,13469000000],
    # [6610000000,5388000000,456000000],
    # [12693000000,1153000000,62009000000] #10-20    
    
    # [99402000000,103000000,27000000]
    # ,[1000000,11734000000,0]
    # ,[122000000,2000000,76429000000]  #95-00
    
    # [98944000000,444000000,137000000],
    # [7000000,11829000000,3000000],
    # [315000000,11000000,76130000000],#00-05
    
    # [99047000000,190000000,30000000],
    # [6000000,12278000000,0],
    # [153000000,9000000,76108000000],#05-10
    
    # [98845000000,330000000,32000000],
    # [3000000,12468000000,6000000],
    # [56000000,16000000,76066000000],#10-15
    
    # [74106000000,11031000000,13458000000],
    # [6756000000,5562000000,472000000],
    # [12670000000,1148000000,62005000000]#15-20
    
    # #95-10
    # [96601000000.000000000000000,295000000.000000000000000,535000000.000000000000000,180000000.000000000000000,48000000.000000000000000,113000000.000000000000000,7000000.000000000000000]
    # ,[0.000000000000000,1717000000.000000000000000,16000000.000000000000000,3000000.000000000000000,1000000.000000000000000,16000000.000000000000000,0.000000000000000]
    # ,[1000000.000000000000000,2000000.000000000000000,1818000000.000000000000000,1000000.000000000000000,0.000000000000000,0.000000000000000,0.000000000000000]
    # ,[4000000.000000000000000,7000000.000000000000000,108000000.000000000000000,9792000000.000000000000000,0.000000000000000,2000000.000000000000000,0.000000000000000]
    # ,[133000000.000000000000000,132000000.000000000000000,11000000.000000000000000,6000000.000000000000000,70208000000.000000000000000,51000000.000000000000000,1000000.000000000000000]
    # ,[202000000.000000000000000,56000000.000000000000000,2000000.000000000000000,2000000.000000000000000,31000000.000000000000000,3706000000.000000000000000,21000000.000000000000000]
    # ,[49000000.000000000000000,7000000.000000000000000,1000000.000000000000000,2000000.000000000000000,11000000.000000000000000,19000000.000000000000000,1903000000.000000000000000] 
    
    #10-20
    [71727000000.000000000000000,1679000000.000000000000000,1715000000.000000000000000,9235000000.000000000000000,10259000000.000000000000000,1766000000.000000000000000,307000000.000000000000000]
    ,[341000000.000000000000000,482000000.000000000000000,116000000.000000000000000,134000000.000000000000000,159000000.000000000000000,964000000.000000000000000,14000000.000000000000000]
    ,[271000000.000000000000000,19000000.000000000000000,2089000000.000000000000000,55000000.000000000000000,37000000.000000000000000,15000000.000000000000000,1000000.000000000000000]
    ,[6206000000.000000000000000,114000000.000000000000000,297000000.000000000000000,2947000000.000000000000000,274000000.000000000000000,114000000.000000000000000,15000000.000000000000000]
    ,[9529000000.000000000000000,877000000.000000000000000,95000000.000000000000000,746000000.000000000000000,58002000000.000000000000000,568000000.000000000000000,237000000.000000000000000]
    ,[1360000000.000000000000000,120000000.000000000000000,47000000.000000000000000,175000000.000000000000000,640000000.000000000000000,1308000000.000000000000000,220000000.000000000000000]
    ,[760000000.000000000000000,47000000.000000000000000,4000000.000000000000000,86000000.000000000000000,383000000.000000000000000,111000000.000000000000000,540000000.000000000000000] 
    
    # 95-20[74170000000.000000000000000,11700000000.000000000000000,13355000000.000000000000000]
    # ,[6431000000.000000000000000,4851000000.000000000000000,431000000.000000000000000]
    # ,[12931000000.000000000000000,1190000000.000000000000000,62147000000.000000000000000]
    # [71839000000.000000000000000,1762000000.000000000000000,2208000000.000000000000000,9320000000.000000000000000,10283000000.000000000000000,1800000000.000000000000000,265000000.000000000000000]
    # ,[208000000.000000000000000,361000000.000000000000000,86000000.000000000000000,86000000.000000000000000,71000000.000000000000000,926000000.000000000000000,10000000.000000000000000]
    # ,[168000000.000000000000000,15000000.000000000000000,1574000000.000000000000000,30000000.000000000000000,23000000.000000000000000,7000000.000000000000000,1000000.000000000000000]
    # ,[6147000000.000000000000000,101000000.000000000000000,338000000.000000000000000,2909000000.000000000000000,273000000.000000000000000,112000000.000000000000000,15000000.000000000000000]
    # ,[9614000000.000000000000000,922000000.000000000000000,105000000.000000000000000,757000000.000000000000000,58080000000.000000000000000,580000000.000000000000000,237000000.000000000000000]
    # ,[1424000000.000000000000000,128000000.000000000000000,45000000.000000000000000,181000000.000000000000000,644000000.000000000000000,1298000000.000000000000000,262000000.000000000000000]
    # ,[794000000.000000000000000,49000000.000000000000000,7000000.000000000000000,95000000.000000000000000,380000000.000000000000000,122000000.000000000000000,544000000.000000000000000]
    #   [97070000000.000000000000000,130000000.000000000000000,343000000.000000000000000,86000000.000000000000000,34000000.000000000000000,81000000.000000000000000,7000000.000000000000000]
    # ,[1000000.000000000000000,1743000000.000000000000000,14000000.000000000000000,1000000.000000000000000,1000000.000000000000000,14000000.000000000000000,0.000000000000000]
    # ,[0.000000000000000,1000000.000000000000000,1892000000.000000000000000,0.000000000000000,1000000.000000000000000,0.000000000000000,0.000000000000000]
    # ,[1000000.000000000000000,5000000.000000000000000,87000000.000000000000000,9850000000.000000000000000,0.000000000000000,2000000.000000000000000,0.000000000000000]
    # ,[76000000.000000000000000,57000000.000000000000000,5000000.000000000000000,2000000.000000000000000,70310000000.000000000000000,25000000.000000000000000,1000000.000000000000000]
    # ,[109000000.000000000000000,45000000.000000000000000,1000000.000000000000000,1000000.000000000000000,17000000.000000000000000,3802000000.000000000000000,9000000.000000000000000]
    # ,[26000000.000000000000000,2000000.000000000000000,1000000.000000000000000,1000000.000000000000000,8000000.000000000000000,11000000.000000000000000,1947000000.000000000000000]
  #00-05
    ])
# names = ['生产空间', '生活空间', '生态空间']
names = ['农业生产空间', '工矿生产空间', '城镇生活空间', '农村生活空间','绿地生态空间','水域生态空间','潜在生态空间']
grads = (True, False, False, False)               # 梯度
gaps  = (0.03, 0, 0.03, 0)                        # 间隙值
sorts = ("size", "distance", None, "distance")    # 排序顺序
cclrs = (None, None, "slategrey", None)           # 和弦颜色
# nrota = (False, False,False, False)    
nrota = (True,True,True,True)              # 名字旋转
cmaps = ("Set3_r", "Set3_r","Set3_r", "Set3_r")              # 调色板
fclrs = "white"                                    # 字体颜色
drctd = (False, False, False, False)               # 有向图

args = (grads, gaps, sorts, cclrs, nrota, cmaps, drctd)


for grd, gap, srt, cc, nr, cm, d in zip(*args):
    chord_diagram(flux ,gap=gap ,use_gradient=grd, sort=srt, directed=d,
                  cmap=cm, chord_colors=cc, rotate_names=nr, fontcolor=fclrs)

    str_grd = "_gradient" if grd else ""
    
    # plt.legend(title='Legend',bbox_to_anchor=(0.5,-0.2),frameon=False,framealpha=0.75
    #            ,labels=names,ncol=7)
    
    
    plt.savefig(
        "D:\河北省土地利用\河北省土地利用\CHORD\example{}_sort-{}{}20.png".format(str_grd, srt,
                                                "_directed" if d else ""),
        dpi=600, transparent=False, bbox_inches='tight',
        pad_inches=0.02)
# plt.legend(title='Legend',bbox_to_anchor=(1,0.9)

plt.show()


  • 作者:GUAI_GUAI_daydayup
  • 原文链接:https://blog.csdn.net/qq_58291072/article/details/127184961
    更新时间:2023年7月14日12:09:31 ,共 7394 字。