如何使用此数据框创建简单的交互式绘图图

Posted

技术标签:

【中文标题】如何使用此数据框创建简单的交互式绘图图【英文标题】:How to create a simple interactive plotly graph with this dataframe 【发布时间】:2021-12-05 12:05:06 【问题描述】:

我正在尝试使用我在 datacamp 上看到的示例制作交互式图表,但我不知道如何使用不同类型的数据框进行操作。这是我的数据框(我自己通过添加来自其他 dfs 的列来创建它):

如何遍历具有不同名称的列?以及如何选择日期列?

这是我从 datacamp 获得的代码,我正在尝试将其更改为适合我,但显然它不起作用,因为我不知道如何正确地遍历列:

for country in ['fake news IT', 'fake news BR', 'fake news PH']:
    df = df_fake_news[df_fake_news[0] == country]
    fig.add_trace(go.Scatter(
                   x=df['date'],
                   y=df['country'],
                   name=, mode='lines'))

【问题讨论】:

您想要每列使用不同的散点图,还是需要具有不同点的单个散点图? @ChrisOram 每列的单独散点图 【参考方案1】:

如果要循环遍历数据框的列,可以直接写列名,但可以使用 df.columns 获取列名列表。使用 subplot 水平排列三列。

from plotly.subplots import make_subplots
import plotly.graph_objects as go
import numpy as np
import pandas as pd

df = pd.DataFrame('date':pd.date_range('2020-09-30',' 2021-09-30', freq='1d'),
                   'fake news IT': np.random.randint(0,30,(366,)),
                   'fake news BR': np.random.randint(0,30,(366,)),
                   'fake news PH': np.random.randint(0,30,(366,)),
                  )
df['date'] = pd.to_datetime(df['date'])
df.set_index('date', inplace=True)

fig = make_subplots(rows=1, cols=3)

for i,c in enumerate(df.columns):
    fig.add_trace(
        go.Scatter(x=df.index, y=df[c], mode='markers', name=c),
        row=1, col=i+1
)

fig.show()

【讨论】:

您的代码在 y 轴上的值为 df['country'],但您正在绘制仅包含示例数据的图表。如果您有任何要求,请告诉我。

以上是关于如何使用此数据框创建简单的交互式绘图图的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 pandas DataFrame 绘图函数绘制每个子图的 ylabel

如何在 matplotlib 中为交互式绘图的 onclick(event) 函数创建类?

如何从数据框中显示绘图/3d 图?

如何使用 Oxyplot 创建方形绘图区域

Plotly:如何使用类似于在图例中单击它们的按钮来切换轨迹?

带有两个滑块的交互式 matplotlib 图