颜色渐变从蓝色变为红色,表示材质的状态。我现在可以绘制每条曲线。每行由两个点定义,然后使用pyplot(matplotlib库)简单地绘制。我也清楚知道如何计算相关值。
然而,可以注意到,例如对于第一图中的点9或22,该值在重叠区域处是不同的。我目前还不知道如何有效地做到这一点
我唯一的想法来自this solution。基本上,我必须将每个曲线部分转换为多边形。但它看起来非常沉重,并且在这种情况下可能不是最佳解决方案。
我主要是要求能够帮助我实现这一目标的潜在客户,或者只是更聪明地看待问题!
产生这个数字的代码:
import shelve
import matplotlib.pyplot as plt
import os
path = "C:/Users/***/Desktop/Python/PyHugo/"
d = shelve.open(os.path.join(path, 'output.db'))
pointMat = d ['curve']
d.close()
fig=plt.figure()
ax=fig.add_subplot(111)
for matID in pointMat.keys():
for couple in range(len(pointMat[matID])-1):
plt.plot([pointMat[matID][couple][0][0],pointMat[matID][couple][1][0]],[pointMat[matID][couple][0][1],pointMat[matID][couple][1][1]])
plt.show()
点数存储在pointMat dictionnary中。每个区域都有一组积分。区域是特定材料。它由图1中的黑色线(540左右)表示。所以在当前的例子中有2种材料。
第一组得分由:
print matPoint[0][0]
结果:[[20,20],[0,40]]。我们在第一篇材料中询问了第一点。
编辑1:添加了代码,删除了偏离主题的问题
编辑2:我不是绘制曲线,而是将值映射到网格上(现象的离散化)。问题有太多的变化,这似乎是一个更好的主意。感谢您花时间来帮助我!
答案 0 :(得分:0)
您需要使用 alpha 参数使线条变为半透明:
plt.plot([pointMat[matID][couple][0][0],
[pointMat[matID][couple][1][0]],
[pointMat[matID][couple][0][1],
[pointMat[matID][couple][1][1]],
alpha=0.7)
作为一个例子。