使用Python无法获得正确的图形比较

使用Python无法获得正确的图形比较,python,csv,matplotlib,graph,Python,Csv,Matplotlib,Graph,我试图比较并获得两个CSV文件之间的适当交点。为了更好地理解,我使用了图形描述。 但与另一个图形相比,一个图形的图像变得非常模糊。 见下文: 以下是数据: 这是真实的图表: 以下是数据: 这是真实的图表: 以下是我为比较而编写的程序: import pandas as pd import matplotlib.pyplot as plt dat2 = pd.read_csv("trade-volume.csv", parse_dates=['time']) dat3 = pd.read_c

我试图比较并获得两个CSV文件之间的适当交点。为了更好地理解,我使用了图形描述。
但与另一个图形相比,一个图形的图像变得非常模糊。
见下文:

以下是数据:
这是真实的图表:
以下是数据:
这是真实的图表:

以下是我为比较而编写的程序:

import pandas as pd
import matplotlib.pyplot as plt


dat2 = pd.read_csv("trade-volume.csv", parse_dates=['time'])
dat3 = pd.read_csv("miners-revenue.csv", parse_dates=['time'])


dat2['timeDiff'] = (dat2['time'] - dat2['time'][0]).astype('timedelta64[D]')
dat3['timeDiff'] = (dat3['time'] - dat3['time'][0]).astype('timedelta64[D]')

fig, ax = plt.subplots()

ax.plot(dat2['timeDiff'], dat2['Value'])
ax.plot(dat3['timeDiff'], dat3['Value'])

plt.show()
我得到如下输出:

正如人们所看到的,橙色的图形非常低,我无法理解这些点,因为它较低。我愿意将图表重叠,然后进行检查


如果不需要修改,请帮助我使用现有代码。

问题可归结为您的y轴。一个最大值为60000000,而另一个最大值为600000000。试图在同一个图形上绘制这些图形将导致一条“看起来”像一条直线,即使放大后不是这样

一种可能的解决方案是使用第二个y轴(您可以使用
ax.plot()
中的
color=
参数更改线条的颜色):


问题可以归结为y轴。一个最大值为60000000,而另一个最大值为600000000。尝试在同一个图形上绘制这些图形将导致一个“看起来”像一条直线,即使放大后不是

一种可能的解决方案是使用第二个y轴(您可以使用
ax.plot()
中的
color=
参数更改线条的颜色):


这两种数据的比例非常不同。为了比较它们,您可以对它们进行规范化

import pandas as pd
import matplotlib.pyplot as plt


dat2 = pd.read_csv("trade-volume.csv", parse_dates=['time'])
dat3 = pd.read_csv("miners-revenue.csv", parse_dates=['time'])


dat2['timeDiff'] = (dat2['time'] - dat2['time'][0]).astype('timedelta64[D]')
dat3['timeDiff'] = (dat3['time'] - dat3['time'][0]).astype('timedelta64[D]')

fig, ax = plt.subplots()

ax.plot(dat2['timeDiff'], dat2['Value']/dat2['Value'].values.max())
ax.plot(dat3['timeDiff'], dat3['Value']/dat3['Value'].values.max())

plt.show()

这两种数据的比例非常不同。为了比较它们,您可以对它们进行规范化

import pandas as pd
import matplotlib.pyplot as plt


dat2 = pd.read_csv("trade-volume.csv", parse_dates=['time'])
dat3 = pd.read_csv("miners-revenue.csv", parse_dates=['time'])


dat2['timeDiff'] = (dat2['time'] - dat2['time'][0]).astype('timedelta64[D]')
dat3['timeDiff'] = (dat3['time'] - dat3['time'][0]).astype('timedelta64[D]')

fig, ax = plt.subplots()

ax.plot(dat2['timeDiff'], dat2['Value']/dat2['Value'].values.max())
ax.plot(dat3['timeDiff'], dat3['Value']/dat3['Value'].values.max())

plt.show()

第二个数据集的值似乎比第一个数据集低得多,所以这就是您的图形所显示的。@DanielF感谢您让我更具体地理解这个问题。但是,如果我希望图形与上面两张图片所示的值完全一致,而不考虑其值,该怎么办呢?是否可行?您可以按照@DavidG进行第二个y轴,但如果您正在查看的话对于“交点”,该方法可能不会显示您要查找的内容。您所说的“交点”是什么意思在这种情况下?@DanielF是的,它以相同的颜色显示两个图形。第二个数据集的值似乎比第一个数据集的值低得多,所以这就是您的图形所显示的值。@DanielF感谢您让我更具体地理解这个问题。但是,如果我希望图形与上述两幅图像中的值一样精确,而不考虑这些值,该怎么办呢ble?你可以按照@DavidG做一个辅助y轴,但是如果你在寻找“交点”,那么这个方法可能不会显示你在寻找什么。你说的“交点”是什么意思在这种情况下?@DanielF是的,它以相同的颜色显示两个图形它工作,但我得到的是相同的颜色——蓝色。请参见图片:在
ax.plot()中使用
color=
参数。
我将更新我的答案,但我得到的是相同的颜色——蓝色。请参见图片:在
ax.plot()中使用
color=
参数
。我将更新我的答案