如何使用 Plotly 绘制 IBM Watson NLU API JSON 输出?

How to plot IBM Watson NLU API JSON output using Plotly?

我使用了 IBM Watson NLU API 并以 JSON 格式从响应中获取关键字。现在,我想通过使用 plotly 'x'='text' ,'y'='count' 来绘制图表,但不知道该怎么做。image

没有简单或直接的方法可以实现这一点。您可能必须使用像 pandas 这样的库来将 JSON 输出转换为 plotly 可以在图表上绘制的格式。

您可以从 Pandas 101 - https://plot.ly/pandas/intro-to-pandas-tutorial/

开始

这是使用 IBM Watson studio 上的 Jupyter notebook 绘制的带有文本和计数数据的 Plotly 条形图

剧情代码:

import plotly
import plotly.plotly as py
import plotly.graph_objs as go

NLU_data = [go.Bar(x=NLU_df.text, y=NLU_df['count'].tolist())]

py.iplot({ 'data': NLU_data,
            'layout': {
               'title': 'Distribution',
               'xaxis': {
                 'title': 'text'},
               'yaxis': {
                'title': 'count'}
        }})

您可以找到Jupyter notebook here完整代码供您参考

如果您的 JSON 对象被调用 response,那么此示例代码会将其转换为 pandas 数据框并将其显示为图形。

import pandas as pd
df = pd.DataFrame(response['keywords'], columns=['text', 'relevance', 'count']) 
df.plot(kind='barh', x='text', y='count')

它将显示如下内容: