需要导入的包
matplotlib
xlrd
numpy
开发工具:python3.7.0开发环境 ,pycharm
在pycharm中新建一个项目,File->new project,点开project interpreter:......
选中Inherit global site-package,这样创建的项目就会自动的使用内部安装好的python包,前提是在必须导入了这些包
在project1下面新建一个python file,按照下面导入就可以了(如果下面这段话报错的话就是还未安装培养python包)
import numpy as np
from matplotlib import pyplot as plt
import xlrd
导入包报错的可以这样做
cmd命令行,利用pip工具来导入,可以用镜像网站下载更快,例如导入matplotlib包,如下
命令行语句:
pip install xxx –i https://pypi.tuna.tsinghua.edu.cn/simple
再回到新建的python文件里面就不会报错了。
代码展示
import numpy as np
from matplotlib import pyplot as plt
import xlrd
# 用于正常显示中文
plt.rcParams['font.sans-serif'] = 'SimHei'
#用于正常显示符号
plt.rcParams['axes.unicode_minus'] = False
# 使用ggplot的绘图风格,这个类似于美化了,可以通过plt.style.available查看可选值,你会发现其它的风格真的丑。
plt.style.use('ggplot')
#导入需要读取excel表格的路径
wb = xlrd.open_workbook(r'C:\Users\xx科技01\Desktop\项目文档\\excel1.xlsx')
table = wb.sheets()[0]
fig=plt.figure(figsize=(11,11))
ax=fig.add_subplot(1,1,1,polar=True) #设置一个坐标轴为极坐标体系
jingke={}
for i in range(1,table.nrows):
jingke[i] = table.cell_value(i,3)
y=np.array([i for i in jingke.values()]).astype(int)
label=np.array([j for j in jingke.keys()])
x = np.linspace(0, 2*np.pi, len(y), endpoint=False)
x1 = np.concatenate((x, [x[0]])) #将x的第一个值添加到原来的x组成第一个和最后一个元素一致的新列表,以实现x闭合
y1 = np.concatenate((y, [y[0]])) #将y的第一个值添加到原来的y组成第一个和最后一个元素一致的新列表,以实现y闭合
angles = np.array(x)
#绘制极坐标
ax.set_thetagrids(angles*180/np.pi, label, fontproperties="Microsoft Yahei") #设置网格标签
ax.plot(x1,y1,"black",lw = 1)
#绘制448KN预警力线
y2 = []
for i in range(137):
y2.append(448)
ax.plot(x1,y2,"k:",lw = 1)
#绘制672KN预警力线
y3 = []
for i in range(137):
y3.append(672)
ax.plot(x1,y3,'k-.',lw = 1)
#设置极坐标0°位置
ax.set_theta_zero_location('N')
#设置显示的极径范围
ax.set_rlim(0,800)
#填充颜色
ax.fill(x1,y1,facecolor='paleturquoise', alpha=0.2)
#设置极坐标刻度出现的位置,即与初始位置的夹角
ax.set_rlabel_position(15)
ax.set_title("风机塔架法兰M36螺栓轴力检测值",fontproperties="SimHei",fontsize=16) #设置标题
plt.show()
excel1数据部分展示,总共136行数据
雷达图效果图