Python 熊猫群居图给出第一个图两次
我有一个包含多个类别的数据框,我想使用Python 熊猫群居图给出第一个图两次,python,pandas,plot,Python,Pandas,Plot,我有一个包含多个类别的数据框,我想使用groupby分别绘制每个类别。但是,第一个类别(或第一个绘图)始终绘制两次 例如: import pandas as pd import numpy as np import matplotlib.pyplot as plt n = 100000 x = np.random.standard_normal(n) y1 = 2.0 + 3.0 * x + 4.0 * np.random.standard_n
groupby
分别绘制每个类别。但是,第一个类别(或第一个绘图)始终绘制两次
例如:
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
n = 100000
x = np.random.standard_normal(n)
y1 = 2.0 + 3.0 * x + 4.0 * np.random.standard_normal(n)
y2 = 1.0 + 5.0 * x + 2.0 * np.random.standard_normal(n)
df1 = pd.DataFrame({"A": x,
"B": y1})
df2 = pd.DataFrame({"A": x,
"B": y2})
df1["Cat"] = "Cat1"
df2["Cat"] = "Cat2"
df = df1.append(df2, ignore_index=True)
df.groupby("Cat").plot.hexbin(x="A", y="B",cmap = "jet")
plt.show()
这将给我三个绘图,其中Cat1绘图两次
我只想要两个情节。我做错了什么?这是预期行为,请参阅中的警告: 警告:在当前实现中,对第一个组应用func调用两次,以确定它可以采用快速还是慢速代码路径。如果func有副作用,这可能会导致意外行为,因为它们会对第一组产生两次效果
在您的例子中,plot函数被调用了两次,这在结果中是可见的。这可能与
apply
tweep实现有关:,为了解决这个问题,我将获得各个组,并迭代这些组并绘制它们OK,非常感谢!我本来打算避免对组进行迭代,但如果这是正常行为,那么就没关系了