Python 分组时间序列帧散点图
我有一个框架df,其中列是['date','float','int'],以简化。 日期和浮动不是唯一的,因此我将它们分组:Python 分组时间序列帧散点图,python,pandas,matplotlib,plot,time-series,Python,Pandas,Matplotlib,Plot,Time Series,我有一个框架df,其中列是['date','float','int'],以简化。 日期和浮动不是唯一的,因此我将它们分组: dd = df.groupby(['date', 'float']).sum() 问题是,我需要对日期索引重新采样,我必须通过 dd = dd.unstack().resample('B').last() 否则,如果不拆垛,它将下降一个标高 现在我要做的是绘制一个散点,用'date'作为x轴,float'作为y轴,int'作为点的大小。 我正在用我现在的框架努力实现这一
dd = df.groupby(['date', 'float']).sum()
问题是,我需要对日期索引重新采样,我必须通过
dd = dd.unstack().resample('B').last()
否则,如果不拆垛,它将下降一个标高
现在我要做的是绘制一个散点,用'date'作为x轴,float'作为y轴,int'作为点的大小。
我正在用我现在的框架努力实现这一点。
也许我做的预处理是错误的,有一个更干净的方法来实现这一点。
在这方面,可能没有必要取消堆叠。您可以通过重置索引执行分组和重采样,同时以长格式维护数据帧: 之后,您可以将normal方法与定义点大小的s参数一起使用,如下所示:
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
# mocking your dataframe
dates = pd.date_range(start="2017-10-10", periods=20)
values = np.random.random(20)
sizes = np.random.randint(1, 80, 20)
df = pd.DataFrame({"dates": dates,
"values": values,
"sizes": sizes})
# plot setup
fig,ax= plt.subplots()
fig.set_size_inches(15, 7)
# scatter
ax.scatter(x=df["dates"].values,
y=df["values"].values,
s=df["sizes"].values)
# setting x axis bounds
ax.set_xlim((df["dates"].min(), df["dates"].max()))
你能提供一些你正在使用的虚拟数据吗?非常感谢。总的来说,我仍然需要围绕重新编制索引展开工作,因为熊猫的力量似乎存在!
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
# mocking your dataframe
dates = pd.date_range(start="2017-10-10", periods=20)
values = np.random.random(20)
sizes = np.random.randint(1, 80, 20)
df = pd.DataFrame({"dates": dates,
"values": values,
"sizes": sizes})
# plot setup
fig,ax= plt.subplots()
fig.set_size_inches(15, 7)
# scatter
ax.scatter(x=df["dates"].values,
y=df["values"].values,
s=df["sizes"].values)
# setting x axis bounds
ax.set_xlim((df["dates"].min(), df["dates"].max()))