33231

[code]

    import numpy as np
    import pandas as pd
    import matplotlib.pyplot as plt
    import pandas_highcharts
    from pandas_highcharts.display import display_charts
    
[/code]

と記述して実行すると、

> File "C:\Users\sugitomo1\Desktop\python\fx_practice2.py", line 5, in  
>  from pandas_highcharts.display import display_charts  
>  File "C:\Users\sugitomo1\AppData\Local\Programs\Python\Python36-32\b\site-
> packages\pandas_highcharts\display.py", line 32, in  
>  AttributeError: 'NoneType' object has no attribute 'config'

というエラーが出てしまいます。

どのようにすればhighchartを表示できるのでしょうか？  
分かる方いらっしゃいましたら、ご教授願います。。


CC BY-SA 3.0
2017-03-09T01:13:34.740
33200
2017-03-10T05:27:20.187
2017-03-10T04:51:49.393
30
20949
question
python highcharts
pandas-highchartが実行できません


`from pandas_highcharts.display import display_charts` でエラーが出ていますが、これはJupyter
Notebookでチャートを表示するためのモジュールです1。これを使って表示するためにはJupyter Notebook上で実行する必要があります。

1 [`pandas_highcharts.display`](https://github.com/gtnx/pandas-
highcharts/blob/aebcab40b753badb9e6655adb3f323739957b5a1/pandas_highcharts/display.py#L5)モジュールのコメントがヒントになります。

それに加え、pandas-
highchartsにはHighchartのJSライブラリに渡すためのJSONを出力してくれる関数`pandas_highcharts.serialize()`もあります（パッケージの名前上、こちらがメインでしょうか）。JavaScriptでレンダリングするのが意図した用途であれば、この関数を使うために`import
pandas_highcharts`するだけにとどめ、`from pandas_highcharts.display import
display_charts`の行は削除して大丈夫です。

## Jupyterで表示する

Jupyterを[インストール](http://jupyter.org/install.html)し

[code]

    pip3 install jupyter
    
[/code]

起動:

[code]

    jupyter notebook
    
[/code]

するとブラウザが開くので、右上のNewをクリックしてPython 3を選び、コードを入力:

[code]

    import pandas as pd
    from pandas.compat import StringIO
    from pandas_highcharts.display import display_charts
    
    # Data retrieved from http://www.quandl.com/api/v1/datasets/ODA/DEU_PCPIPCH.csv?column=1
    data = """Date,Value\n2019-12-31,1.7\n2018-12-31,1.7\n2017-12-31,1.7\n2016-12-31,1.5\n2015-12-31,1.247"""
    df = pd.read_csv(StringIO(data), index_col=0, parse_dates=True)
    df = df.sort_index()
    display_charts(df, title="Germany inflation rate")
    
[/code]

`>|`みたいなボタンを押すとチャートが表示されるはずです。

([pandas-
highchartsのサンプルノートブック](http://nbviewer.jupyter.org/github/gtnx/pandas-
highcharts/blob/master/example.ipynb)から拝借したコードです。他にもいろいろなグラフの種類の例があります)

## Highchartライブラリで表示する

ウェブページを表示するための何らかのコードとHighchartライブラリをHTMLビュー側で利用できるようにセットアップして、

[code]

    import pandas as pd
    from pandas.compat import StringIO
    import pandas_highcharts
    
        # HTMLビューを返すコード内
    
        data = """Date,Value\n2019-12-31,1.7\n2018-12-31,1.7\n2017-12-31,1.7\n2016-12-31,1.5\n2015-12-31,1.247"""
        df = pd.read_csv(StringIO(data), index_col=0, parse_dates=True)
        df = df.sort_index()
        chart = pandas_highcharts.serialize(df, render_to='my-chart', output_type='json')
    
        # どうやってビュー側に渡すかは利用しているウェブフレームワークに依存します。
        # 以下のコードはただの例:
        return render_template('chart', chart_json=chart)
    
[/code]

HTMLビュー側:

[code]

    <div id="my-chart"></div>
    <script type="text/javascript">
      new Highcharts.Chart({{chart_json|safe}});
    </script>
    
[/code]

([READMEのサンプル](https://github.com/gtnx/pandas-highcharts#usage)を参考にしました)


CC BY-SA 3.0
2017-03-10T05:27:20.187
33231
2017-03-10T05:27:20.187
30
33200
answer