【问题标题】:Why does my code not return an error but still doesn't create a window?为什么我的代码没有返回错误但仍然没有创建窗口?
【发布时间】:2021-05-13 03:29:51
【问题描述】:

当我运行此代码时,它不会返回错误但不会创建窗口。请有人帮忙。

import pygal as pyg

line_chart = pyg.HorizontalBar()
line_chart.title = 'Friends favorite pizza topping'
line_chart.add('olives', 24)
line_chart.add('TOMATO', 32)
line_chart.add('pepperoni', 42)
line_chart.add('mushroom', 0.5)
line_chart.add('other', 1.5)
line_chart.render()

【问题讨论】:

    标签: python pygal


    【解决方案1】:

    它生成可以分配给变量的 SVG 数据

     data = line_chart.render()
    

    用于嵌入 HTML 或保存在文件中

     with open('image.svg', 'wb') as fh:  # need binary mode
         fh.write(data)
    

     line_chart.render_to_file('image.svg')
    
     line_chart.render_to_png('image.png')
    

    以后您可以在浏览器或查看器中打开它。

    如果您想在网络浏览器中立即看到它,那么您需要

     line_chart.render_in_browser()
    

    还有其他render_....可以为FlaskDjango等生成响应


    也许如果您在jupyter notebookGoogle Colab(在网络浏览器中运行)中使用render(),那么它会立即显示它。


    import pygal as pyg
    
    line_chart = pyg.HorizontalBar()
    line_chart.title = 'Friends favorite pizza topping'
    line_chart.add('olives', 24)
    line_chart.add('TOMATO', 32)
    line_chart.add('pepperoni', 42)
    line_chart.add('mushroom', 0.5)
    line_chart.add('other', 1.5)
    
    data = line_chart.render(pretty_print=True)
    print(data.decode())
    
    with open('image.svg' 'wb') as fh:
        fh.write(data)
        
    #line_chart.render_to_file('image.svg')
    #line_chart.render_to_png('test.png')
    
    line_chart.render_in browser()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-27
      • 1970-01-01
      相关资源
      最近更新 更多