主题标题可能有点糟糕,我为此道歉。 这是我的二维图表:
我想得到的是定义的“年份”(x axis)
和定义的“件数”(y axis)
值,以获得红点所属的区域(在这种情况下“ C”)。
基本上我想以某种方式将这个图复制到python,然后读取点所属的特定区域(用于给出“Year”和“number of pieces”数据)。
如果没有安装一些额外的python绘图模块,是否可以这样? 该图是一个图像.gif文件。
编辑:我不想将这个.gif图导入python,然后从中读取特定的像素(所以不,不是图像处理)。我想以某种方式在python中重新创建它,即使这意味着生成一长串的数十个值。答案 0 :(得分:1)
抱歉,编码时睡着了...... 检查下面是否适合你
graph = [
[1998.4, 1998.5, 1998.7, 1999.2, 1999.8, 2001.1],
[1999.8, 2000.0, 2000.5, 2000.9, 2001.6, 2003.0],
[2001.1, 2001.3, 2001.7, 2002.1, 2002.8, 2004.1],
[2002.3, 2002.7, 2003.1, 2003.5, 2004.0, 2004.9],
[2003.8, 2003.8, 2004.0, 2004.2, 2004.5, 2005.0]
]
MyStop = False
def interPolate(x0, y0, x1, y1, x):
if x1 == x0:
return y0
else:
return y0 + (y1-y0)*(x-x0)/(x1-x0)
while not MyStop:
nop = raw_input("Input the number of pieces [0 to 5,000] (x to stop): ")
if nop <> "x":
if nop.isdigit():
inop = int(nop)
if inop <= 5000 and inop >= 0:
y = raw_input("Input the year: ")
if y.isdigit():
yy = int(y)
val = []
for aList in graph:
for j in range(len(aList)-1):
if 1000*j <= inop and 1000*(j+1) > inop:
val.append(interPolate(1000*j, aList[j], 1000*(j+1),aList[j+1],inop))
if yy > val[4]:
print "Value in Region : F."
elif yy > val[3]:
print "Value in Region : E."
elif yy > val[2]:
print "Value in Region : D."
elif yy > val[1]:
print "Value in Region : C."
elif yy > val[0]:
print "Value in Region : B."
else:
print "Value in Region : A."
else:
print "Something Went Wrong !! :("
else:
print "Will Exit Now! ByeBye."
MyStop = True