Python画玫瑰图

  • 第一步,读取数据;
  • 第二步,设置柱长;
  • 第三步,设置角度;
  • 第四步,设置颜色
  • 第五步,做图;
    • 普通型
    • 中央空白型
    • 半透明型
  • 第六步,添加标签,美化图形。

第一步,读取数据;

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
# 使文字可以展示
plt.rcParams['font.sans-serif'] = ['SimHei']
jsonGlobal = pd.read_excel('E:/BaiduNetdiskDownload/Tableau课程所用数据/玩家综合能力雷达图数据.xlsx', )
# 取C得值画玫瑰图
pdat = jsonGlobal.iloc[2, 2:]
pdat

第二步,设置柱长;

# len就是我们极坐标的每个柱子的长度
pdat = pd.DataFrame({'value':pdat, 'len':1.2 ** (pdat+1)})
pdat

第三步,设置角度;

# 角度
l = pdat['len']
N = pdat.shape[0]
width = 2*np.pi/N
rad = np.cumsum([width]* N) - width/2
rad

第四步,设置颜色

# 颜色
import matplotlib as mpl
cm = mpl.cm.get_cmap('Reds')
colors = cm((rad - rad.min())/ (rad.max()-rad.min()))
colors

第五步,做图;

普通型
#  作图
plt.figure(figsize = (6, 8))
ax = plt.subplot(projection = 'polar') #极坐标
ax.bar(rad, l, width = width, color = colors, alpha = 1)

中央空白型
plt.figure(figsize = (6, 8))
ax = plt.subplot(projection = 'polar') #极坐标
ax.set_ylim(-1,np.ceil(l.max())+1)
ax.bar(rad, l, width = width, color = colors, alpha = 1)

半透明型
plt.figure(figsize = (6, 8))
ax = plt.subplot(projection = 'polar') #极坐标
ax.bar(rad,1,width = width,color = colors, alpha=0.5)

第六步,添加标签,美化图形。

# 设置 标签颜色、位置
txt_settings = {'span':{0:0.5, 1:0.5, 2:0.5, 3: 0.5},'color':{0:'black', 1:'black', 2:'black', 3: 'black'},'rot_adj' : {0:-90, 1: -90, 2: 90, 3:90},'ha':{0:'right', 1: 'right',2:'left',3: 'left'}}
# 标签值
txt_label = ['{} {}'.format(x, y) for x, y in zip(pdat.index, pdat['value'])]#  作图
plt.figure(figsize = (6,8))
ax = plt.subplot(projection = 'polar')#极坐标图绘制
ax.set_ylim(-1,np.ceil(l.max()) + 1)
ax.set_theta_zero_location('N') #设置极坐标的起点(即0度)在正上方向
ax.grid(False)
ax.spines['polar'].set_visible(False)#不显示极坐标最外的圆形
ax.set_yticks([]) # 不显示坐标间隔
ax.set_thetagrids([])bars = ax.bar(rad,l,width = width, color = colors, alpha = 1)
ax.bar(rad,1,width = width,color = 'white', alpha = 0.3)
ax.bar(rad,1.5,width = width, color = 'white', alpha = 0.2)
# 添加文本标注
for i in np.arange(N):direc = rad[i]//(np.pi/2)ax.text(rad[i], l[i] + txt_settings['span'][direc] ,txt_label[i],rotation = rad[i] * 180 /np.pi + txt_settings['rot_adj'][direc],color = txt_settings['color'][direc], ha = txt_settings['ha'][direc], va = 'center',rotation_mode = 'anchor',  # this parameter is a trickalpha = 1, fontweight = 'bold', size = 10) 

Python画玫瑰图相关推荐

  1. python画玫瑰图_央视都在用的“南丁格尔玫瑰图”,原来Python也可以画

    前一阵子,我看到央视新闻中,有一张比较好看数据图,如下: 后来才知道这叫"南丁格尔玫瑰图",是南丁格尔护士在克里米亚战争期间提交的一份关于士兵死伤报告时发明的一种图表. 我心想能不 ...

  2. python画玫瑰图_三步学会用python画一个简单的玫瑰图

    玫瑰图实际是一种2维极坐标统计图,常用于表示气象.气候现象,如测站的风向频率等.用excel也可以画,但相对麻烦一些,所以当我们需要用到玫瑰图时,我们可以尝试用python来画.首先导入需要用到的包 ...

  3. 学会用pyecharts画玫瑰图

    文章目录 文章目录 前言 相关文档文档和社区 1.中文官方文档 2.官方github 3.社区 一.什么是玫瑰图? 二.玫瑰图的特点 1.适合对比分析,没有占比意义 2.数据差异不宜过大 3.可以反映 ...

  4. python 画三维函数图-Python画三维图-----插值平滑数据

    一.二维的插值方法: 原始数据(x,y) 先对横坐标x进行扩充数据量,采用linspace.[如下面例子,由7个值扩充到300个] 采用scipy.interpolate中的spline来对纵坐标数据 ...

  5. python画折线图代码-python画折线示意图实例代码

    python画折线图方法 前做PPT要用到折线图,嫌弃EXCEL自带的看上去不好看,就用python写了一个画折线图的程序. import matplotlib.pyplot as plt x=[1, ...

  6. python画折线图详解-python如何画折线图

    python画折线图利用的是matplotlib.pyplot.plot的工具来绘制折线图,这里先给出一个段代码和结果图:# -*- coding: UTF-8 -*- import numpy as ...

  7. python画折线图详解-利用python画出折线图

    本文实例为大家分享了python画折线图的具体代码,供大家参考,具体内容如下 # encoding=utf-8 import matplotlib.pyplot as plt from pylab i ...

  8. python画超长图-利用Python画图,千变万化,各种画图技巧!

    如图所示,利用Python的turtle画了一个美国队长盾牌的标志: # 所需依赖:python3 sublime Python代码: # print 打印 print('hello world!') ...

  9. python画折线图-python如何画折线图

    python画折线图利用的是matplotlib.pyplot.plot的工具来绘制折线图,这里先给出一个段代码和结果图:# -*- coding: UTF-8 -*- import numpy as ...

最新文章

  1. C++需要输出一个参数的地址时可能达不到预期的效果
  2. 搞定常见垃圾收集器【Java】
  3. Oracle 11g中文版高清视频教程
  4. java邮件实例_java邮件小实例
  5. OpenCV的滤波与卷积
  6. 计算机公式or,【转载】 odds、OR和RR的计算公式和实际意义
  7. 飞鸽传书最新源码类都要复杂的多
  8. 社会化生态农场品,社群+农产品,大有搞头
  9. 了解 Promise.any() 用法
  10. Hadoop学习笔记—13.分布式集群中节点的动态添加与下架
  11. 现阶段的主流数据库分别是哪几种?
  12. 最近完成的APS生产排程工具,以甘特图展示排程结果
  13. 【智能门禁系统】——硬件设计
  14. 后端---史上最全最小白最简单最细致的Java接入微信支付接口(Native接入)
  15. 笔记本快捷键(fl980)
  16. 清理Win10系统C盘的脚本方法
  17. 2018 年博客总结
  18. 操作系统思维导图(一)
  19. 简单又好用的5款小工具软件
  20. RC充电时间的计算--示例

热门文章

  1. IE hasLayout详解
  2. 数析三剑客 numpy pandas matplotlib 基础操作
  3. MQTT-SN协议阅读之MQTT-SN vs MQTT
  4. 【倾斜摄影】——三维建模软件ContextCapture 空三质量报告详细解读
  5. 美国国土安全部和MSF相继发布了Citrix漏洞的测试利用工具
  6. 惊醒!北漂,你到底在漂什么?
  7. 互联网通信与内网安全性分析
  8. SDUST 第四次作业
  9. html中的问号有什么作用,html语言中一开始的问号和双斜槓表示什麼意思?
  10. 搜狗输入法自定义短语使用小技巧