Конечно, мы не можем знать содержимое файла 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')