我试图绘制财务数据,一切都看起来很好,直到我添加一个填充,我想要在一条线和图形顶部之间。我做错了什么,但我不知道是什么。我收到此错误:" TypeError:ufunc' isfinite'不支持 根据投射规则编辑类型''''"
这是我使用的代码的简化版本:
import mysql
import matplotlib.pyplot as plt
db = mysql.connect()
cursor = db.cursor()
contractID = input('Enter contract ID: ')
prices = []
x = []
cursor.execute('SELECT * FROM prices WHERE ContractID = %s' % contractID)
for i in range(0, cursor.rowcount):
row = cursor.fetchone()
price = row[2] # Changing this to price = int(row[2]) fixes the problem. See comments.
prices.append(price)
x.append(i)
plt.fill_between(x, 100, prices) # TODO: This doesn't work. Everything else works if I remove this line.
plt.plot(prices)
plt.ylim(0, 100)
plt.show()
编辑:我很乐意提供一个最小的,完整的,可验证的示例,但是当我尝试这样做时,该示例有效。我不知道如何重现错误。
这是我的工作尝试:
import matplotlib.pyplot as plt
x = []
y = []
for i in range(0, 49):
x.append(i)
y.append(i)
plt.fill_between(x, 100, y) # This works fine now
plt.plot(x, '#000000')
plt.ylim(0, 100)
plt.show()