【问题标题】:OverflowError with Matplotlib and datetimeMatplotlib 和日期时间的溢出错误
【发布时间】:2018-04-15 17:16:51
【问题描述】:

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

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) 结果是一个空的图形对象。

谢谢。

【问题讨论】:

    标签: python datetime matplotlib tkinter


    【解决方案1】:

    您不能使用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()
    

    结果

    【讨论】:

    • 我应该提到我尝试过,但它导致一个空的情节。
    • 不,它会生成一个只有一个散点的图。查看更新的答案。
    • 谢谢。不过,我的情节是空白的,这似乎是因为我使用 from_dict 方法或转置构建数据的方式。知道这里发生了什么吗?
    • 不,这与数据框无关。我更新了答案中的代码,现在和你的一样,它仍然给出了相同的情节。
    • 很奇怪;即使有各种后端,这也会为我产生一个空的情节。见:stackoverflow.com/questions/47101239/…
    猜你喜欢
    • 1970-01-01
    • 2016-05-15
    • 2018-06-05
    • 2016-02-23
    • 1970-01-01
    • 2021-01-14
    • 2019-03-24
    • 2021-01-29
    • 2021-03-21
    相关资源
    最近更新 更多