【发布时间】:2016-03-20 18:14:21
【问题描述】:
我正在尝试使用下面的代码在 Python(我正在使用 spyder IDE)中使用 Matplotlib 创建填充图。但是,我收到了代码底部发布的错误。我要绘制的数据框包含沿 x 轴的日期,然后是一系列 y 值(我创建了示例数据框以查看是否重现了错误,以防我的数据框出现问题)。
这似乎让我很困惑,我正试图从头开始(并访问了 matplotlib 网站,该网站发布在代码中的 cmets 中)。
我对 Python 和 Matplotlib 非常陌生,也许我只是缺少一些基本的东西。我需要为我正在执行的工作添加很多带有日期时间 x 轴的图,所以如果我应该注意任何其他功能,请告诉我,我们将不胜感激!
提前致谢!
import pandas as pd
import numpy as np
import datetime as dt
import matplotlib.pyplot as plt
data1 = [{'a':dt.datetime(2015,1,1,12,0,0), 'b':1},{'a':dt.datetime(2015,1,1,13,0,0), 'b':2},{'a':dt.datetime(2015,1,1,14,0,0), 'b':3}]
df1 = pd.DataFrame(data1)
data2 = [{'a':dt.datetime(2015,1,1,12,0,0), 'c':9},{'a':dt.datetime(2015,1,1,13,0,0), 'c':8},{'a':dt.datetime(2015,1,1,14,0,0), 'c':7}]
df2 = pd.DataFrame(data2)
df3 = pd.merge(df1, df2, how = 'left', on = 'a')
plt.fill(df3['a'], df3['c'])
plt.show()
"""
used this example code from Fill Demo on page http://matplotlib.org/users/screenshots.html
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(0, 1)
y = np.sin(4 * np.pi * x) * np.exp(-5 * x)
plt.fill(x, y, 'r')
plt.grid(True)
plt.show()
"""
File "/Applications/anaconda/lib/python3.5/site-packages/numpy/core/shape_base.py", line 280, in hstack
return _nx.concatenate(arrs, 1)
TypeError: invalid type promotion
【问题讨论】:
-
为我工作。你用的是什么版本的 pandas、matplolib、nad NumPy?
-
熊猫 0.17.1、Matplotlib 1.5.0 和 Numpy 1.10.1
标签: python matplotlib spyder