Python最大的好处就是开源的package,你总能找到各种方案,不过换句话说,每种方案都也都有其优劣势,不是可视化呈现不美观,就是可视化对数据组织的要求不同,再不然就是缺胳膊少腿的,感觉像拼凑一样,其实已经找到了N种方案,准备改写其中的一个,奈何时间原因,只好找一个最简单的凑数了。
很难说什么原创,毕竟package是公开的,数据是找的,还是那句话,理解了,能使用,就行。
代码示例
-
import matplotlib.pyplot as plt
-
import squarify
-
#中文处理
-
plt.rcParams['font.sans-serif'] = 'SimHei'
-
plt.rcParams['axes.unicode_minus'] = False
-
# 全球GDP数据,主要包括标签、指标和颜色
-
name = ['美国','中国','日本','德国','法国','英国','印度',
-
'巴西','意大利','加拿大','韩国','俄罗斯','澳大利亚','西班牙',
-
'墨西哥','印度尼西亚','土耳其','荷兰','瑞士','沙特阿拉伯','其他']
-
income =[201999.6,131186.9,50631.3 ,39348.1 ,27656 ,26612.3 ,26541.7 ,
-
21997.2 ,20489.9 ,17634.9 ,15973.9 ,15229 ,14822.8 ,14199.3 ,
-
12499.7 ,10921.4 ,9057.16 ,8910.37 ,7087.96 ,7084.87 ,154169.32]
-
colors = [plt.cm.Spectral(i/float(len(name))) for i in range(len(name))]
-
# 绘图details
-
plot = squarify.plot(sizes = income, # 指定绘图数据
-
label = name, # 指定标签
-
color = colors, # 指定自定义颜色
-
alpha = 0.6, # 指定透明度
-
value = income, # 添加数值标签
-
edgecolor = 'white', # 设置边界框为白色
-
linewidth =2 # 设置边框宽度为3
-
)
-
# 设置标签大小为9
-
plt.rc('font', size=9)
-
# 设置标题大小
-
plot.set_title('2018全球GDP(亿元)',fontdict = {'fontsize':15})
-
# 除坐标轴
-
plt.axis('off')
-
# 除上边框和右边框刻度
-
plt.tick_params(top = 'off', right = 'off')
-
# 图形展示
-
plt.show()