可能沒有必要unstack
。你可以做你groupby
和resample
同時保持長格式的數據幀通過reset_index
:
df.groupby(["date", "float"])\
.sum()\
.reset_index(-1)\
.resample("B")\
.last()
之後,您可以使用正常ax.scatter
方法與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()))
你能否提供你正在使用一些虛擬數據? – pansen