当前位置: 首页 > 知识库问答 >
问题:

在Plotly/Dash中绘制多个月份和年份的值

柯易安
2023-03-14

我有一个仪表盘,我需要在x轴上绘制从0到12个月的月份,我需要在同一个图上有多条线,用于选择的不同年份,即1991-2040年。绘制的值是数据框中显示为“总计”的列。标签应为年,总值位于y轴上。我的数据如下所示:

      Month Year  Total
0       0  1991  31.4
1       0  1992  31.4
2       0  1993  31.4
3       0  1994  20
4       0  1995  300
..    ...   ...   ...
33      0  2024  31.4
34      1  2035  567
35      1  2035  10
36      1  2035  3
....

我是否需要对其进行分组,以及如何在短划线/绘图中实现这一点?

共有1个答案

颜博达
2023-03-14

在我看来,您应该查看一下pd.pivot\u表。

%matplotlib inline
import pandas as pd
import numpy as np
import plotly.offline as py
import plotly.graph_objs as go

# create a df
N = 100
df = pd.DataFrame({"Date":pd.date_range(start='1991-01-01',
                                        periods=N,
                                        freq='M'),
                   "Total":np.random.randn(N)}) 

df["Month"] = df["Date"].dt.month
df["Year"] = df["Date"].dt.year
# use pivot_table to have years as columns
pv = pd.pivot_table(df,
                    index=["Month"],
                    columns=["Year"],
                    values=["Total"])
# remove multiindex in columns
pv.columns = [col[1] for col in pv.columns]

data = [go.Scatter(x = pv.index,
                   y = pv[col],
                   name = col)
        for col in pv.columns]

py.iplot(data)
 类似资料:
  • 问题内容: 我有以下数据框: 我需要按年份和月份对数据进行分组。例如:按2013年1月,2013年2月,2013年3月等分组。我将使用新分组的数据创建一个显示每年/每月abc vs xyz的图表。 我已经尝试了groupby和sum的各种组合,但是似乎什么也无法工作。 感谢您的协助。 问题答案: 您可以使用重采样或(在后台重采样)。 首先,请确保datetime列实际上是datetimes(用命中

  • 例子: 例如:String str=“11/20”(MM/yy)希望通过在Java中以上述格式传递字符串来获取月份名称和年份(例如:11月/20)

  • 问题内容: 如何在Java中动态显示for循环中特定月份的日期,月份和年份? 问题答案: 这简要演示了Java 和类的一些基础知识。根据您的问题,这是我能做的最好的事情。

  • 如果在程序中有人给我天数(ab=“days”),我需要将变量“days”设置为相同的数字(“val”中的值),如果有人给我月份(ab=“months”),那么我需要将其转换为天(val中的值),如果有人给我年(ab=“years”),那么我需要将其转换为天(val中的值)。ie如果用户在变量“ab”中指定了值的类型(即是月、年或日期)和变量“val”中的天数(天/月/年),我需要在变量“天”中获得

  • 我有以下数据框: 我需要按年和月分组数据。即:按2013年1月、2013年2月、2013年3月等分组...我将使用新分组的数据来创建一个显示每年/每月abc vs xyz的图表。 我尝试过groupby和sum的各种组合,但似乎没有任何效果。 谢谢你的帮助。

  • 问题内容: 如何在SELECT中查找一年中的第一天? 我找到了这个月份-但是我没有足够的掌握年份的信息:(我一直在寻找一个单独的查询来查找月份开始和现在之间的数据) 问题答案: 我认为您需要: 老实说,您可以执行以下操作: