1.例一

图1

代码1

#第1步:导出模块
import numpy as np
import matplotlib.pyplot as plt
from matplotlib import font_manager # 中文字体设置第1步,导出模块 #中文字体设置第2步:引出字体模块和位置
my_font = font_manager.FontProperties(fname="/usr/share/fonts/truetype/noto/simsun.ttf") #数据来源,单独设定,非文件来源
#dataLenth = 8 #数据个数,8组数据
#标签
labels = np.array(['3℃','5℃','6℃','3℃','1℃','3℃','3℃','2℃'])
data = np.array([3,5,6,3,1,3,3,2]) #数据值,与上面labels有对应关系 #雷达图的数据格式,基本固定
#angles = np.linspace(0, 2*np.pi, dataLenth, endpoint=False)
#如果没有dataLenth = 8==len(labels),也可以这样
angles = np.linspace(0, 2*np.pi, len(labels), endpoint=False) data = np.concatenate((data, [data[0]]))
angles = np.concatenate((angles, [angles[0]])) #导出fig图片设置,雷达图这种格式基本固定
fig = plt.figure()
#polar=true,就是ax.set_thetagrids可以显示
ax = fig.add_subplot(111, polar=True)
#数据线的宽度2,ro-代表red-;bo-代表blue-;yo-代表yellow-;o-代表深蓝deepblue-
ax.plot(angles, data, 'ro-', linewidth=2) #ax.set_thetagrids(angles * 180/np.pi, labels, fontproperties="SimHei") #bug,本机报错
ax.set_thetagrids(angles * 180/np.pi, labels, fontproperties=my_font) #fig标题设置,中文字体设置
#中文字体设置第3步,在显示中文的地方,增加u和fontproperties=my_font
#ax.set_title("温度变化雷达图", va='bottom', fontproperties="SimHei")
ax.set_title(u"温度变化雷达图", va='bottom', fontproperties=my_font)
ax.grid(True) #显示雷达图的一圈一圈的线,8个圈线 #显示图片
plt.show()

2.例二

图2

代码二

#导出模块
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from matplotlib import font_manager # 中文字体设置第1步,导出模块 #中文字体设置
#plt.rcParams['font.sans-serif'] = ['KaiTi'] # 显示中文,本机不行
#中文字体设置第2步:引出字体模块和位置
my_font = font_manager.FontProperties(fname="/usr/share/fonts/truetype/noto/simsun.ttf") #中文字体设置第3步,在显示中文的地方,在这里增加u
labels = np.array([u'李白', u'王维', u'杜甫',u'白居易']) # 这种中文字体设置很难,分2个地方
#dataLenth = 4 # 数据长度
data_radar = np.array([63, 1, 15, 13]) # 数据 #angles = np.linspace(0, 2*np.pi, dataLenth, endpoint=False) # 分割圆周长
#如果不设置dataLenth = 4,也可以len(labels)=4,代表4组数据
angles = np.linspace(0, 2*np.pi, len(labels), endpoint=False) # 分割圆周长 data_radar = np.concatenate((data_radar, [data_radar[0]])) # 闭合
angles = np.concatenate((angles, [angles[0]])) # 闭合 plt.polar(angles, data_radar, 'bo-', linewidth=1) # 做极坐标系
# 中文设置的labels,在这里加fontproperties=my_font
plt.thetagrids(angles * 180/np.pi, labels,fontproperties=my_font)
plt.fill(angles, data_radar, facecolor='r', alpha=0.25)# 填充 plt.ylim(0, 70)
#中文字体设置第3步,在显示中文的地方,增加u和fontproperties=my_font
#va='bottom',默认这个;top可能与王维重叠
plt.title(u'四个人的年总收入', fontproperties=my_font) #标题设置 plt.show()

3.例三

3.1 读取csv数据

L R F M C
customer0 -0.18851 0.701298 -0.66178 -0.68228 -0.43681
customer1 0.050142 -0.33906 0.092392 0.065064 0.09756
customer2 -0.05403 -0.03271 -0.30585 -0.33106 0.011589
customer3 0.309113 -0.64527 1.378002 1.4691 0.3989
customer4 -0.12259 0.332883 -0.53543 -0.54537 -0.08043

3.2 图3

3.3 代码3

#导出模块
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt #定义
def result_pic(result):
# 解析出类别标签和种类
labels = ['L', 'R', 'F', 'M', 'C']
kinds = list(result.iloc[:, 0])
# 由于在雷达图中,要保证数据闭合,这里就再添加L列,并转换为 np.ndarray
result = pd.concat([result, result[['L']]], axis=1)
centers = np.array(result.iloc[:, 1:])
angle = np.linspace(0, 2 * np.pi, len(labels), endpoint=False)
angle = np.concatenate((angle, [angle[0]]))
# 绘图
fig = plt.figure()
ax = fig.add_subplot(111, polar=True) # 参数polar, 以极坐标的形式绘制图形
# 画线
for i in range(len(kinds)):
ax.plot(angle, centers[i], linewidth=2, label=kinds[i])
# 添加属性标签
ax.set_thetagrids(angle * 180 / np.pi, labels)
plt.title('data show')
plt.legend(loc='lower right')
plt.show() if __name__ == '__main__':
result = pd.read_csv('data2.csv', sep=',')
result_pic(result) #注意细节:一般我们都是喜欢用excel或者wps表格进行数据的输入
#但是在保存数据时,喜欢直接更改文件的属性,导致数据读不出来
#应该是将文件另存为.csv格式

python+matplotlib制作雷达图3例分析和pandas读取csv操作的更多相关文章

  1. python批量制作雷达图

    老板要画雷达图,但是数据好多组怎么办?不能一个一个点excel去画吧,那么可以利用python进行批量制作,得到样式如下: 首先制作一个演示的excel,评分为excel随机数生成: 1 =INT(( ...

  2. 在Excel中制作雷达图

    雷达图的作用 雷达图是专门用来进行多指标体系比较分析的专业图表.从雷达图中可以看出指标的实际值与参照值的偏离程度,从而为分析者提供有益的信息.雷达图一般用于成绩展示.效果对比量化.多维数据对比等等,只 ...

  3. Matplotlib学习---用matplotlib画雷达图(radar chart)

    雷达图常用于对多项指标的全面分析.例如:HR想要比较两个应聘者的综合素质,用雷达图分别画出来,就可以进行直观的比较. 用Matplotlib画雷达图需要使用极坐标体系,可点击此链接,查看对极坐标体系的 ...

  4. HTML5 Canvas制作雷达图实战

    雷达图又叫蜘蛛网图,是一种对各项数据查看很明显的表现图,在很多游戏中,对游戏中的每个角色的分析图一般也用这种图. 下面,用HTML5的Cavas来实现雷达图. 效果 一.创建Canvas var mW ...

  5. DevExpressXtraReport—制作雷达图

    存储过程: SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -- ========================================== ...

  6. python matplotlib imshow热图坐标替换/映射

    今天遇到了这样一个问题,使用matplotlib绘制热图数组中横纵坐标自然是图片的像素排列顺序, 但是这样带来的问题就是画出来的x,y轴中坐标点的数据任然是x,y在数组中的下标, 实际中我们可能期望坐 ...

  7. Python+Matplotlib制作动画

    注: 在"实验设计与数据处理"的课后作业中,有一个数据可视化的作业,利用课程上学习的某种方法找一个二维函数的最大值,并将这个寻找的过程可视化.在作业里面利用了Matplotlib的 ...

  8. python matplotlib 简单生成图

    import numpy as np import pandas as pd from matplotlib import pyplot as plt data = pd.DataFrame([[1, ...

  9. python matplotlib.pyplot画矩形图 以及plt.gca()

    plt的Rectangle参数: 第一个参数是坐标(x,y),即矩形的画图的起点坐标,这个起点坐标不是一味地从左下角开始画,而是对应整个图中坐标原点,即(0,0). 第二个参数是矩形宽度 第三个坐标是 ...

随机推荐

  1. shell-删除指定时间前的文件

    需要配合find和rm两个命令完成 显示20分钟前的文件: find /home/prestat/bills/test -type f -mmin +20 -exec ls -l {} \; 删除20 ...

  2. Iptables防火墙(未完)

    来自深信服培训第二天下午课程 软防跟硬防 Linux包过滤防火墙概述 netfilter 位于Linux内核中的包过滤功能体系 称为Linux防火墙的"内核态" iptables ...

  3. deepin开机自动启动服务备忘

    systemctl enable mysql.service(设置开机自启) sudo systemctl start nginx.service sudo systemctl restart ngi ...

  4. asp.net core 发布到linux下Docker

    1.linux Docker 安装 内核升级:https://www.cnblogs.com/zksfyz/p/7919425.html 安装:   https://www.runoob.com/do ...

  5. Angular项目目录

    0.模块介绍和基础知识 https://cloud.tencent.com/developer/section/1489514 1.如下图VSCode-- node_modules 第三方依赖包存放目 ...

  6. Hibernate的save方法不能进行数据库插入

    问题描述 在 MyEcplise 上运行 tomcat,利用 po 模板自动生成 po 文件,调用 po 的 save 方法,不报错,但是无法把数据插入数据库 applicationContext.x ...

  7. python 多版本环境

    参考 https://www.cnblogs.com/---JoyceLiuHome/articles/7852871.html 安装 Anaconda集成化环境 https://www.anacon ...

  8. Codeforces Round #621 (Div. 1 + Div. 2)E(二分查找,枚举分界点,容斥原理)

    可以把每头牛看作一个位置,有几对牛可以放置相当于有几对位置可以给它睡觉,没有牛可以在其他牛的位置睡觉,所以有几对牛放置的可能答案就乘多少(相当于在原本的两个集合里分别插入一个元素,元素代表它睡觉的位置 ...

  9. 2019牛客竞赛第六场D Move 宏观单调,部分不单调

    Move 题意 有k个体积相同的箱子,有个憨憨有固定的装箱策略,每次都只装可以装的重量中最大的东西,求箱子的最小提及 分析 看起来可以二分,但由于他的装箱策略有点蠢,所以只在宏观上满足单调性,在特别小 ...

  10. COMMUNITY DETECTION

    Method 1: M. E. J Newman ‘Networks: An Introduction’, page 224 Oxford University Press 2011. from ne ...