Matplotlib和datetime的OverflowError

时间:2017-11-03 03:08:07

标签: python datetime matplotlib tkinter

当我尝试使用日期时间制作散点图时,我收到溢出错误:

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

list_data  = ['2016-10-06', '2016-09-24', 55, 'dummy', 0.510823, 0.29431]
columns    = ['master', 'slave', 'baseline', 'coh', 'coh_mean', 'coh_std']
dict_data  = dict(zip(columns, list_data))
data       = pd.DataFrame.from_dict(dict_data, orient='index').T
data.slave = pd.to_datetime(data.slave)
fig, axes  = plt.subplots()
axes.scatter(data.slave, data.baseline)
plt.show()

我尝试过各种各样的事情,例如使用datetime.strptime(),更改matplotlib后端,但只是将问题隔离到日期时间格式(如果它是一个字符串就可以正常工作)。

没有散射(axes.plot(), axes.plot_date())的绘图工作正常,但我最终需要为散点图着色,分散方法似乎最适合。

编辑: 绘制熊猫系列的价值     axes.scatter(data.slave.values, data.baseline.values) 导致空图形对象。

感谢。

1 个答案:

答案 0 :(得分:0)

您无法使用scatter绘制大熊猫系列。你想要的只是绘制它的值。

axes.scatter(data.slave.values, data.baseline.values)

完整示例:

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

list_data  = ['2016-10-06', '2016-09-24', 55, 'dummy', 0.510823, 0.29431]
columns    = ['master', 'slave', 'baseline', 'coh', 'coh_mean', 'coh_std']
dict_data  = dict(zip(columns, list_data))
data       = pd.DataFrame.from_dict(dict_data, orient='index').T
data.slave = pd.to_datetime(data.slave)
fig, axes  = plt.subplots()
axes.scatter(data.slave.values, data.baseline.values)
plt.show()

结果

enter image description here