上次使用plotly 制作了表格,但是GRR报告上还需要极差、平均值这类的chart图,这里用plotly生成这类图并转换为html格式用网页显示。
图的类型按照MSA上的分析图来制作,图上的数据使用pandas处理好,得到part和appraiser的平均值,极差。
Plotly 这里简单处理用多子图来呈现,(不会js,css排版这里4张chart放在一个画布上不用排版了)。
X_chart = subplots.make_subplots(rows=2, cols=2)
ucrlist = []
for e in range(self.sampleNumber):
ucrlist.append(UCR[self.data_columns[i]])
for r in range(self.opNumber):
r_chart= self.R_chart(title, r)
X_chart.add_trace(r_chart, row=1, col=1)
X_chart.add_trace(self.Mean_chart(title, r), row=1, col=2)
op_av_value = self.op_av_list[r]
X_chart.add_trace(self.samp_mean_chart(title, op_av_value, r),row=2, col=2)
X_chart.add_trace(go.Scatter(x=self.opName, y=self.x_mean_pd[title], name='mean'), row=1, col=2)
X_chart.add_trace(go.Scatter(x=self.sampleName, y=ucrlist, name='UCR', marker={'color':'red'}, line={'dash':'dot'}), row=1, col=1)
for t in range(self.sampleNumber):
samples = self.data[self.data['SerialNumber']==self.sampleName[t]]
x_data_list = []
for y in range(self.opNumber*self.Grr_r):
x_data_list.append(self.sampleName[t])
X_chart.add_trace(self.samp_chart(title, x_data_list, samples, t), row=2, col=1)
ixx = self.tabData[self.tabData['test_item'] == title].index.tolist()[0]
grrValue =float(self.tabData.loc[ixx,'GRR'])
多子图这里有个问题我没找到处理方法,就是每个图例不能放在子图里面。
所有项目图制作完成并转换为html格式:
X_chart.to_html(chart, include_plotlyjs=False, full_html=False)
参数说明include_plotlyjs:输出html是否包含Js脚本,如果项目多的话最后生成的文件太大,这里选择false,full_html:这里选false 输出只要div格式就好因为最后要和表格在同一html下。
最后把生成的html数据用Jinja2保存到html模板中去:
env = Environment(loader=FileSystemLoader("./"))
template = env.get_template('temp.html')
with open('out.html','w+', encoding='utf-8') as f:
out = template.render(items=tabChart,chart=sumChart,
report_op=self.reportBy,
report_date=time)
f.write(out)
初学python写的不太好,这里只是记录下学习的过程,并且这个报表还有很多问题没有解决,最大的问题是测试项目多了(200+)需要生成的图太多,最后打开html文件会加载半天或者卡死,下次尝试下plotly官网的Dash框架看看。
参考文章:用Python制作一份HTML报告 - 知乎文章来源:https://www.toymoban.com/news/detail-418305.html
plotly官网API:Python API reference for plotly — 5.6.0 documentation文章来源地址https://www.toymoban.com/news/detail-418305.html
到了这里,关于Python 使用pandas + plotly 制作GR&R report的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!