aus*_*acy 5 python django numpy matplotlib pandas
我正在学习如何将 Django 框架用于一个工作项目,该框架将允许用户加载各种格式的文件(目前我只处理 CSV 文件),使用Pandas绘制该数据,并将该数据显示回用户通过 Django 模板。我在 iPython 中创建图形没有遇到任何问题,但一直在努力将其转换为 HTML Django 模板。
我遵循了以下示例matplotlib:
# graph input file
from matplotlib.backends.backend_agg import FigureCanvasAgg as FigureCanvas
from matplotlib.figure import Figure
from matplotlib.dates import DateFormatter
def graph(request):
fig = Figure()
ax = fig.add_subplot(111)
x = []
y = []
now = datetime.datetime.now()
delta = datetime.timedelta(days=1)
for i in range(10):
x.append(now)
now += delta
y.append(random.randint(0, 1000))
ax.plot_date(x, y, '-')
ax.xaxis.set_major_formatter(DateFormatter('%Y-%m-%d'))
fig.autofmt_xdate()
canvas = FigureCanvas(fig)
response = HttpResponse( content_type = 'image/png')
canvas.print_png(response)
return response
Run Code Online (Sandbox Code Playgroud)
上面的示例效果很好,我可以在模板中看到它,但这只是一个带有硬编码值的图形。
我尝试使用它Pandas是因为它看似简单的语法,我在 Django 中的尝试如下:
# graph input file
import pandas as pd
from pandas import DataFrame
def graph(request):
data_df = pd.read_csv("C:/Users/vut46744/Desktop/graphite_project/sampleCSV.csv")
data_df = pd.DataFrame(dataArray)
data_df.plot()
response = HttpResponse( content_type = 'image/png')
return response
Run Code Online (Sandbox Code Playgroud)
在 Django 中调用.plot()显示图形很好,但显示一个空白页面到 HTML 模板。我也试过使用 Numpy 的genfromtxt()and loadtxt(),但无济于事。此外,我的谷歌搜索也没有结果。
任何帮助或建议都会很棒。如果您知道 Pandas 的更好替代品,那么我愿意尝试其他选择。
还没有尝试过,但我会像这样攻击它:
def graph(request):
fig = Figure()
ax = fig.add_subplot(111)
data_df = pd.read_csv("C:/Users/vut46744/Desktop/graphite_project/sampleCSV.csv")
data_df = pd.DataFrame(data_df)
data_df.plot(ax=ax)
canvas = FigureCanvas(fig)
response = HttpResponse(content_type='image/png')
canvas.print_png(response)
return response
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4667 次 |
| 最近记录: |