python雷达图的相似度_python做雷达图

最近经常用到python做雷达图,现在把相关代码记录下来以备以后查看。

(一)在雷达图上表示一个点

import matplotlib.pyplot as plt

import numpy as np

plt.polar(0.25*np.pi,20,"ro",lw=2)

plt.ylim(0,100)

plt.show()

其中,polar的第一个参数是角度,第二个参数是对应的数值。

(二)雷达图上多点连成一个线

import matplotlib.pyplot as plt

import numpy as np

theta = np.linspace(0,2*np.pi,4,endpoint = False)

r = [20,60,40,80]

theta = np.concatenate((theta,[thta[0]]))

r = np.concatenate((r,[r[0]]))

plt.polar(theta,r,"r-",lw=2)

plt.ylim(0,100)

plt.show()

在极坐标图上表示线与表示点的方法类似,即将polar的参数换成列表或数组。有两个地方需要注意,一个是生成theta数组的时候要加endpoint = False,二是由于极坐标的数据需要闭合,因此通过np.concatenate对数据做了闭合处理,即第一个元素和最后一个元素一样。

(三)一个标准的雷达图

import numpy as np

import matplotlib.pyplot as plt

# 正常显示中文

plt.rcParams['font.sans-serif'] = 'Microsoft YaHei'

plt.rcParams['axes.unicode_minus'] = False

#使用ggplot的风格绘图

plt.style.use('ggplot')

#构造数据

values = [3.2,2.1,3.5,2.8,3,4]

values_1 = [2.4,3.1,4.1,1.9,3.5,2.3]

feature = ['个人能力','QC知识',"解决问题能力","服务质量意识","团队精神","IQ"]

N = len(values)

#生成角度

angles = np.linspace(0,2*np.pi,N,endpoint=False)

#数据闭合

values = np.concatenate((values,[values[0]]))

angles = np.concatenate((angles,[angles[0]]))

values_1 = np.concatenate((values_1,[values_1[0]]))

#绘图

fig = plt.figure()

#设置为极坐标格式

ax = fig.add_subplot(111, polar=True)

#绘制折线图

ax.plot(angles,values,'o-',linewidth=2,label='活动前')

ax.fill(angles,values,'r',alpha=0.5)

#填充颜色

ax.plot(angles,values_1,'o-',linewidth=2,label='活动后')

ax.fill(angles,values_1,'b',alpha=0.5)

#通过这一个命令调整背景线

ax.set_thetagrids(angles*180/np.pi,feature)

#设置极轴范围

ax.set_ylim(0,5)

#添加标题

plt.title('活动前后员工状态')

#增加网格纸

ax.grid(True)

plt.show()

参考资料:https://www.cnblogs.com/changfan/p/11799721.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
BERT(Bidirectional Encoder Representations from Transformers)是一种预训练语言模型,适用于各种自然语言处理任务,其中包括词组语义相似度计算。 BERT的主要思想是利用Transformer模型来捕捉句子中的上下文信息,从而更好地理解每个词的含义。在词组语义相似度计算中,我们可以使用BERT模型来计算两个词组之间的相似度得分。 具体来说,我们可以将两个词组输入到BERT模型中,获取它们的表示向量,然后通过余弦相似度计算它们之间的相似度得分。具体实现可以使用Python编程语言和PyTorch深度学习框架。 以下是一个示例代码: ```python import torch from transformers import BertTokenizer, BertModel tokenizer = BertTokenizer.from_pretrained('bert-base-uncased') model = BertModel.from_pretrained('bert-base-uncased') def get_similarity_score(text1, text2): encoded_text = tokenizer(text1, text2, return_tensors='pt', padding=True, truncation=True) with torch.no_grad(): outputs = model(**encoded_text) embeddings = outputs.last_hidden_state[:, 0, :] similarity_score = torch.nn.functional.cosine_similarity(embeddings[0], embeddings[1], dim=0) return similarity_score.item() # 示例用法 text1 = "python词组语义相似度" text2 = "NLP中的BERT语义相似度计算" similarity_score = get_similarity_score(text1, text2) print("相似度得分:", similarity_score) ``` 这里我们使用了BERT的预训练模型和预训练分词器,对输入的两个文本进行编码并获取它们的表示向量,然后使用余弦相似度计算它们之间的相似度得分。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值