首页 > 解决方案 > 使用 Matplotlib 在图形上绘制 SQL 结果

问题描述

我正在尝试使用 Matplotlib 在图表上绘制 SQL 查询的结果,但我不断收到相同的错误:

TypeError: unhashable type: 'numpy.ndarray'

我已经尝试对随机值进行硬编码,效果很好,所以我相信这与 SQL 结果的格式有关。SQL 查询的结果附加到变量 x_list = [] 并以以下格式返回列表:

[(u'Ford',), (u'Vauxhall',), (u'Volvo',)]

然后,我尝试使用以下代码将 x_list 转换为 numpy 数组,并将其转换为以下代码,但仍会产生相同的错误:

 x_list = np.array(x_list)
 print xlist 

output:
[[u'Ford']
[u'Vauxhall']
[u'Volvo']

有谁知道我需要做什么才能在图表上绘制这些 sql 结果而不会出现此错误?

编辑:

添加了我如何绘制以获取更多信息。我正在使用 tkinter 在我的程序中显示图表,并尝试尽可能地复制它,而不会造成所有不必要的混乱。

def plot():
    conn = sqlite3.cursor('Cars.db')
    c = conn.cursor()
    c.execute('SELECT model from Cars')
    rs = c.fetchall()

    x_list = []

    x_list.append(rs)
    x_list = np.array(x_list)

    a.plot(x_list)
    canvas.draw()


f = Figure(figsize=(10,5), dpi=100)

canvas = FigureCanvasTkAgg(f, win)
canvas.draw()
canvas.get_tk_widget().grid()

标签: pythonnumpymatplotlib

解决方案


推荐阅读