小福利,Python制作技术功效矩阵图
#--coding:utf-8--
import numpy as np #导入python的数值计算扩展包numpy,并重命名为np
import matplotlib.pyplot as plt #导入Python的绘图扩展包matplotlib,并重新命名为plt
import pandas as pd #导入python的数据处理扩展包pandas,并重命名为pd,该包用于读写excel文件
plt.rc('font', family='SimHei', size=13) #指定字体文件为微软黑体
data1=pd.read_excel('data.xlsx')
data2=data1.T
x=data1.columns#获取数据表的列,作为x轴数据
x.tolist()#转化成Python列表,方便绘图
y_index=[]
for i in data2.columns:
y_index.append(i)
#print(y_index)
y= [[i for y_data in range(len(x))] for i in range(1,len(y_index)+1)]
colors1=pd.read_excel('colors.xlsx')
# colors1=np.arange(40).reshape(5,8)
colors2=colors1.T
for i in range(len(y_index)):#循环绘图,循环次数为excel表格中的数据行数
plt.scatter(x, y[i], s=data2[i], c=colors2[i], alpha=0.5)#绘制图像,因为s和c的索引从1开始,所以用i+1索引
plt.grid(True)
plt.xlabel('技术手段',size=14)
plt.ylabel('技术效果',size=14)
plt.title('XXX领域技术功效分析',size=14)
plt.xticks([1, 2, 3, 4, 5, 6, 7, 8],['技术效果1', '技术效果2', '技术效果3', '技术效果4', '技术效果5','技术效果6','技术效果7','技术效果8'],size=10)
plt.yticks([1, 2, 3, 4, 5],['技术手段1', '技术手段2', '技术手段3', '技术手段4', '技术手段5'],size=14)
plt.show()#显示图片
最后效果图
原始数据图data.xlsx
颜色数据colors.xlsx
原文地址:https://mp.weixin.qq.com/s?__biz=MzIzOTE1ODc1NA==&mid=2649604916&idx=1&sn=9b72e0d417caa534798cfbba4eac76f5&chksm=f13737b9c640beafa46cbb28be62f72e06dbe08cb1c5f8dceeedec87788b8ca6caa83fa4dc98&scene=21#wechat_redirect