Pandas 二次y偏移2个x记号

Pandas 二次y偏移2个x记号,pandas,matplotlib,jupyter-notebook,pandas-groupby,Pandas,Matplotlib,Jupyter Notebook,Pandas Groupby,我的目标是在同一个图形上绘制两个不同的图 我的代码: df = pd.read_csv("https://raw.githubusercontent.com/theaupoulat/vc_fundraising/master/levee2019.csv") # format amount raised df["amount_raised"] = (df["amount_raised"] .str.replace("M", "000000")

我的目标是在同一个图形上绘制两个不同的图

我的代码:

df = pd.read_csv("https://raw.githubusercontent.com/theaupoulat/vc_fundraising/master/levee2019.csv")

# format amount raised
df["amount_raised"] = (df["amount_raised"]
                   .str.replace("M", "000000")
                   .str.replace(" ", "")
                   .str.replace(".", "")
                   .str.replace("€", "")
                   .str.replace("NC", "0")
                   .str.replace('\D', '')
                   .astype(int)
                   ) / 1000000

# groupby object to extract aggregate values
per_week = df.groupby("week_number")

# dataframe creation for plotting purposes
d = {'weekly_amount': per_week.amount_raised.sum(), "total_fundraisings": per_week.size()}
df_week_recap = pd.DataFrame(data=d)

#plotting
plt.figure()

ax1 = df_week_recap['weekly_amount'].plot(secondary_y = True, color = 'violet')
ax2 = df_week_recap["total_fundraisings"].plot(kind='bar', color = 'blue')

ax2.grid(True)
ax1.grid(False)
ax1.set_ylim([0,500])

plt.show()
生成以下绘图:

这很奇怪,因为粉色线显示的值来自[同一行+2],而不是条形图(检查数据)

我真的不明白matplotlib决定在哪里偏移数据帧值

有什么线索吗


谢谢

如果您使用pandas标签,您可能会在这方面得到更多的关注,因为pandas在这里进行绘图,而不是直接使用matplotlib。除非您提供可运行的代码,否则很难猜出哪里出了问题。由于您似乎对堆栈溢出还不熟悉,所以您应该读取数据帧的索引从2开始,因此该行也从位置2开始。嘿,修改了标记并添加了整个代码以便重新创建@重要的是,我不认为它是这样的:用同样的处理方法,其他库正确地绘制直线(没有偏移),你可能会想你想要的,但即使不知道你的数据帧,我可以向你保证这就是发生的事情。索引从2开始,因此这是行的起点。条形图始终从位置0开始。如果您不喜欢这种行为,其他库确实会以不同的方式处理此问题,因此,例如,使用普通matplotlib进行打印(
plt.bar
/
plt.plot
)将使您获得更一致的视觉效果。如果您标记了pandas标签,您可能会在这方面获得更大的吸引力,因为pandas正在这里进行打印,不直接使用matplotlib。除非提供可运行的代码,否则很难猜出是什么错误。由于您似乎对堆栈溢出还不熟悉,所以您应该读取数据帧的索引从2开始,因此该行也从位置2开始。嘿,修改了标记并添加了整个代码以便重新创建@重要的是,我不认为它是这样的:用同样的处理方法,其他库正确地绘制直线(没有偏移),你可能会想你想要的,但即使不知道你的数据帧,我可以向你保证这就是发生的事情。索引从2开始,因此这是行的起点。条形图始终从位置0开始。如果您不喜欢这种行为,其他库确实会以不同的方式处理此问题,因此,例如,使用普通matplotlib进行打印(
plt.bar
/
plt.plot
)将为您提供更一致的视觉效果。