【问题标题】:How to generate web based report from my python charts如何从我的 python 图表生成基于 Web 的报告
【发布时间】:2018-06-05 01:49:01
【问题描述】:

我编写了以下代码来使用plotly 库生成几个图表:

#Read the excel file from local spreadsheet
df = pd.read_excel(r'C:\Users\llopez\Documents\Temp\Python finished goods.xlsx', sheet_name='Sheet1')

#Create a dictionary of tuples by year
dict_of_fgs = dict(tuple(df.groupby('Year')))

#Loop through the elements of the dictionary of finished goods and plots them grouping FG, type and calculating the sum of quantities. Stacking by type
for k in dict_of_fgs:
    df_grouped = dict_of_fgs[k].groupby(['Finished_Good','Type'],sort=False)['Qty'].sum().unstack('Type').iplot(kind='bar',barmode='stack', title='FG Chart')

它产生以下图表:

这些图表正是我所需要的,所以现在我正在寻找一种方法来生成基于网络的报告并与用户共享。

我查看了以下教程,但我似乎无法调整我的代码,因为我的代码循环通过字典并为每个键(年份)生成一个图。

如何根据我创建的图表生成基于网络的报告?

提前感谢所有主题专家就如何实现这一目标提出了所有伟大的想法。感谢您的帮助。

【问题讨论】:

  • 不知道这是否有帮助,但我几周前遇到了这个问题。 highcharts

标签: python django pandas plotly stacked-chart


【解决方案1】:

如果我理解正确,您希望在 HTML 报告或仪表板中使用 Plotly 图表。

如果是这种情况,那么您应该看看 RStudio 中的 Rmarkdown。尽管它是 Rma​​rdown 而不是 Pyma​​rkdown,但它确实支持 Python。

了解一些 R 语言会有所帮助,但如果不是这样,请不要担心,您可以仅使用 Python 和 Markdown 获取 HTML 报告。

您需要使用以下方式安装 RStudio,以及 Rmarkdownknitrreticulate 软件包:

  1. 安装R
  2. 安装 RStudio(有免费版)
  3. 运行以下命令安装所需的包:

    install.packages(c('Rmarkdown', 'knitr', 'reticulate'))
    
  4. 您可以创建 Rmarkdown 文档并生成 HTML 报告。

这里有一些文档:

我前段时间回答的另一个问题是关于在 python 中生成 Plotly 图并在 HTML 报告中使用 R 插入它: https://stackoverflow.com/a/50194462/2699660

如果您不想使用 R,那么您可以按照上面的答案,以离线模式在本地生成 HTML 图,然后使用 <iframe> 将其插入 HTML 报告中,例如:

<iframe src="path_to_your_plot.html"
    height="600" width="100%"
    scrolling="no" seamless="seamless"
    frameBorder="0">
</iframe>

【讨论】:

    【解决方案2】:

    一个简单的答案是使用 matplotlib savefig 生成图像并将其提供给您的网站

    savefig('foo.png')

    解释: Save plot to image file instead of displaying it using Matplotlib

    否则,对于动态图表,您需要使用 API 将数据发送到浏览器(即您的网站需要调用 API 来获取数据),然后使用一些图表库(或构建您自己的图表库) ) 在 HTML 页面中显示带有 Javascript 的图表。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-07-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多