使用matplotlib从CSV创建图失败

时间:2018-11-12 12:21:17

标签: python pandas matplotlib

我正在尝试使用熊猫从csv进行绘图,但是得到的图像对任何帮助都是空白。

def graph(request):

    fig = matplotlib.figure.Figure()
    ax = fig.add_subplot(111)
    data_df = pd.read_csv(r"C:\Users\csvdata.csv")
    data_df = pd.DataFrame(data_df)
    data_df.plot(ax=ax)
    canvas = FigureCanvas(fig)
    buf = io.BytesIO()
    plt.savefig(buf, format='png')
    plt.close(fig)
    response = HttpResponse(buf.getvalue(), content_type = 'image/png')

    return response

1 个答案:

答案 0 :(得分:1)

我们当然无法知道csv文件的内容,因此无法知道是否正确读取了该文件。但是假设是这样,问题是您正在使用pyplot保存尚未在pyplot中注册的图形。

您可以将pyplot用作

fig = plt.figure()
ax = fig.add_subplot(111)
data_df = pd.read_csv(r"C:\Users\csvdata.csv")
data_df.plot(ax=ax)
buf = io.BytesIO()
plt.savefig(buf, format='png')
plt.close(fig)

或创建没有pyplot的图形,但同时也不要使用pyplot保存它

fig = matplotlib.figure.Figure()
canvas = FigureCanvas(fig)
ax = fig.add_subplot(111)
data_df = pd.read_csv(r"C:\Users\csvdata.csv")
data_df.plot(ax=ax)
buf = io.BytesIO()
fig.savefig(buf, format='png')