Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从2d python图表获取数据_Python_Plot_2d - Fatal编程技术网

从2d python图表获取数据

从2d python图表获取数据,python,plot,2d,Python,Plot,2d,题目可能有点不好,我为此道歉。 这是我的2d图表: 我想要得到的是定义的“年”(x轴)和定义的“件数”(y轴)值,以获得红点所属的区域(在本例中为“C”)。 基本上,我希望以某种方式将此图复制到python中,然后读取点所属的特定区域(对于给定的“年”和“件数”数据) 在不安装其他python绘图模块的情况下,是否可以实现类似的功能? 绘图是一个image.gif文件 编辑:我不想将这个.gif绘图导入python,然后从中读取特定像素(所以不,不是图像处理)。我只想以某种方式在python中

题目可能有点不好,我为此道歉。 这是我的2d图表:

我想要得到的是定义的“年”
(x轴)
和定义的“件数”
(y轴)
值,以获得红点所属的区域(在本例中为“C”)。 基本上,我希望以某种方式将此图复制到python中,然后读取点所属的特定区域(对于给定的“年”和“件数”数据)

在不安装其他python绘图模块的情况下,是否可以实现类似的功能? 绘图是一个image.gif文件


编辑:我不想将这个.gif绘图导入python,然后从中读取特定像素(所以不,不是图像处理)。我只想以某种方式在python中重新创建它,即使这意味着生成一个包含数十个值的长列表。

对不起,在编码时睡着了。。。 检查下面是否适合您

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
图形=[
[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插值(x0,y0,x1,y1,x):
如果x1==x0:
返回y0
其他:
返回y0+(y1-y0)*(x-x0)/(x1-x0)
虽然不是MyStop:
nop=原始输入(“输入工件数量[0到5000](x停止):”)
如果没有“x”:
如果否,则为数字()
inop=int(nop)
如果inop=0:
y=原始输入(“输入年份:”)
如果y.isdigit():
yy=int(y)
val=[]
对于图表中的列表:
对于范围内的j(len(aList)-1):
如果1000*j不工作:
val.append(插值(1000*j,aList[j],1000*(j+1),aList[j+1],inop))
如果yy>val[4]:
打印“区域中的值:F。”
elif yy>val[3]:
打印“区域中的值:E”
elif yy>val[2]:
打印“区域中的值:D”
elif yy>val[1]:
打印“区域中的值:C”
elif yy>val[0]:
打印“区域中的值:B。”
其他:
打印“区域中的值:A。”
其他:
打印“出错了!!:(”
其他:
打印“将立即退出!再见。”
MyStop=True

你的绘图格式是什么???这是图像处理!你想从图像中提取值吗?是的。那么我在python中该怎么做?生成一些长的值列表,然后在这些值之间进行插值?@user3137724所以,你想让人做你的家庭作业:)你还没有尝试过任何东西吗?@user3137724,我想有人告诉我怎么做。我是python初学者,不是程序员。非常感谢@mlwn。但是一年之后的小数位(例如:1998.4-4)代表什么呢?我只是试着模拟这个图表。。。1998.4将与曲线A的0点匹配。。。那么1998.5将与曲线A中的点1000匹配。。。等你明白我的意思了吗?不,对不起,我不明白。请你再解释一下好吗?对不起打扰你了。谢谢。首先,我很抱歉第一行的打字错误,我已经在1998年8月到1999年8月间把它修好了。其次,所有这些值都是近似值,因为我没有花时间精确测量坐标。为了解释我的意思,我修改了您发送的图像。这是基本的数学图。我正在尝试获取值(0、1000、2000、3000、4000和5000)的坐标,这些值是简单的数字。。。如果每个图都是函数f(),则f(x)将是直线。请检查在我的图片链接上的图像,我只准备了一个图表。。。这同样适用于其余的图形。。然后,您可以构建图表列表(或矩阵)