有人帮我要了一个代码。我理解代码中的所有内容,除了最后一行.transform('first')我看到它的作用(我可以看到它),但我想准确地知道它在后面做了什么才能获得这个结果。
这是我理解的代码部分:
df['Date'] = pd.to_datetime(df['Date'])
df['YEP'] = ( df[::-1].loc[df['Type'].eq('Budget')]
.groupby(df['Date'].dt.year)
.Value
.cumsum()
.sub(df['Value'])
.add(df['YTD'])
)
Run Code Online (Sandbox Code Playgroud)
这是第一部分的输出:
Value Type Date YTD YEP
0 100 Budget 2019-01-01 101.0 974.0
1 50 Budget 2019-02-01 199.0 1022.0
2 20 Budget 2019-03-01 275.0 1078.0
3 123 Budget 2019-04-01 332.0 1012.0
4 56 Budget 2019-05-01 NaN NaN
5 76 Budget 2019-06-01 NaN NaN
6 98 Budget 2019-07-01 NaN NaN
7 126 Budget 2019-08-01 NaN NaN
8 90 Budget 2019-09-01 NaN NaN
9 80 Budget …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用手动限制设置来协调 Matplotlib 散点图中的点注释,但是我收到一条错误消息,或者我遇到了设计问题。
这是我的代码:
fig, ax = plt.subplots(figsize = (20,10)) #manual limit setting
plt.axis([-2,3,-2.5,5])
plt.scatter(x, y)
for i, txt in enumerate(n): #dot annotation
ax.annotate(txt, (x[i], y[i]))
Run Code Online (Sandbox Code Playgroud)
这是输出的屏幕截图(我得到的最终散点图是一个位于大白色矩形左角的小矩形:
我也试过这个:
fig, ax = plt.subplots(figsize = (20,10))
ax = plt.axis([-2,3,-2.5,5])
plt.scatter(x, y)
for i, txt in enumerate(n):
ax.annotate(txt, (x[i], y[i]))
Run Code Online (Sandbox Code Playgroud)
但是当然我收到了以下错误消息(即使图表正确显示,但每个对应点旁边没有标签)。
AttributeError: 'list' object has no attribute 'annotate'
Run Code Online (Sandbox Code Playgroud)
出现错误是因为我的循环试图遍历ax = plt.axis([-2,3,-2.5,5]),这确实没有意义。
有什么解决方案可以克服这个问题?
谢谢