【发布时间】:2017-11-13 09:15:57
【问题描述】:
颜色渐变从蓝色变为红色,表示材料的状态。我目前可以绘制每条曲线。每条线由两个点定义,然后使用 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 字典中。每个区域都有一组点。区域是一种特定的材料。它在图一中用黑线(约 540)表示。因此,在当前示例中,有 2 种材料。
第一组点由下式给出:
print matPoint[0][0]
结果:[[20, 20], [0, 40]]。我们询问了第一个材料中的前几点。
编辑1:添加代码,删除题外话
编辑 2: 我没有绘制曲线,而是将值映射到网格上(现象的离散化)。这个问题有太多的变化,这似乎是一个更好的主意。感谢您花时间帮助我!
【问题讨论】:
标签: python matplotlib plot curve