Python最大的好处就是开源的package,你总能找到各种方案,不过换句话说,每种方案都也都有其优劣势,不是可视化呈现不美观,就是可视化对数据组织的要求不同,再不然就是缺胳膊少腿的,感觉像拼凑一样,其实已经找到了N种方案,准备改写其中的一个,奈何时间原因,只好找一个最简单的凑数了。

很难说什么原创,毕竟package是公开的,数据是找的,还是那句话,理解了,能使用,就行。


代码示例

  1. import matplotlib.pyplot as plt
  2. import squarify
  3. #中文处理
  4. plt.rcParams['font.sans-serif'] = 'SimHei'
  5. plt.rcParams['axes.unicode_minus'] = False
  6. # 全球GDP数据,主要包括标签、指标和颜色
  7. name = ['美国','中国','日本','德国','法国','英国','印度',
  8. '巴西','意大利','加拿大','韩国','俄罗斯','澳大利亚','西班牙',
  9. '墨西哥','印度尼西亚','土耳其','荷兰','瑞士','沙特阿拉伯','其他']
  10. income =[201999.6,131186.9,50631.3 ,39348.1 ,27656 ,26612.3 ,26541.7 ,
  11. 21997.2 ,20489.9 ,17634.9 ,15973.9 ,15229 ,14822.8 ,14199.3 ,
  12. 12499.7 ,10921.4 ,9057.16 ,8910.37 ,7087.96 ,7084.87 ,154169.32]
  13. colors = [plt.cm.Spectral(i/float(len(name))) for i in range(len(name))]
  14. # 绘图details
  15. plot = squarify.plot(sizes = income, # 指定绘图数据
  16. label = name, # 指定标签
  17. color = colors, # 指定自定义颜色
  18. alpha = 0.6, # 指定透明度
  19. value = income, # 添加数值标签
  20. edgecolor = 'white', # 设置边界框为白色
  21. linewidth =2 # 设置边框宽度为3
  22. )
  23. # 设置标签大小为9
  24. plt.rc('font', size=9)
  25. # 设置标题大小
  26. plot.set_title('2018全球GDP(亿元)',fontdict = {'fontsize':15})
  27. # 除坐标轴
  28. plt.axis('off')
  29. # 除上边框和右边框刻度
  30. plt.tick_params(top = 'off', right = 'off')
  31. # 图形展示
  32. plt.show()

Python学习笔记(TreeMap图)_自定义