使用Python中matplotlib的pandas数据框制作一系列散点图的最佳方法是什么?
例如,如果我有一个df感兴趣的列的数据框,我发现自己通常将所有内容转换为数组:
import matplotlib.pylab as plt
# df is a DataFrame: fetch col1 and col2
# and drop na rows if any of the columns are NA
mydata = df[["col1", "col2"]].dropna(how="any")
# Now plot with matplotlib
vals = mydata.values
plt.scatter(vals[:, 0], vals[:, 1])
Run Code Online (Sandbox Code Playgroud)
在绘图之前将所有内容转换为数组的问题在于它会迫使您突破数据帧.
考虑这两个用例,其中具有完整的数据帧对于绘图是必不可少的:
例如,如果您现在想要查看在col3调用中绘制的相应值的所有值,并使用该值为scatter每个点(或大小)着色,该怎么办?你必须回去,拿出非na值col1,col2并检查它们的相应值.
有没有办法在保留数据帧的同时进行绘图?例如:
mydata = df.dropna(how="any", subset=["col1", "col2"])
# plot a scatter of col1 by col2, with sizes according to col3
scatter(mydata(["col1", "col2"]), s=mydata["col3"]) …Run Code Online (Sandbox Code Playgroud)