【发布时间】:2013-11-25 14:46:48
【问题描述】:
在下面的代码sn-p中:
import numpy as np
import pandas as pd
import pandas.rpy.common as com
import matplotlib.pyplot as plt
mtcars = com.load_data("mtcars")
df = mtcars.groupby(["cyl"]).apply(lambda x: pd.Series([x["cyl"].count(), np.mean(x["wt"])], index=["n", "wt"])).reset_index()
plt.plot(df["n"], range(len(df["cyl"])), "o")
plt.yticks(range(len(df["cyl"])), df["cyl"])
plt.show()
此代码输出点图,但结果看起来很糟糕,因为 xticks 和 yticks 都没有足够的空间,因此很难注意到 cyl 的 4 和 8变量在图中输出其值。
那么我怎样才能提前有足够的空间来绘制它,就像你可以在 R/ggplot2 中没有任何麻烦一样?
供您参考,this code 和 this 在我的情况下都不起作用。有人知道原因吗?我是否必须首先费心创建这样的子图?是否无法根据输入值自动调整刻度?
【问题讨论】:
-
我通常会根据我的输入大小调整刻度,让生活更轻松。
-
您可以添加问题的图像吗? (值得一提的是,刻度间距会根据输入值自动调整。不过,您已经手动将它们设置为其他值。)
-
还是我误解了您的要求?您是否要求在情节边缘有更多空间?如果您想模仿 R 的行为,请使用
ax.margins(0.04),它会在自动缩放之前在数据限制周围添加 4% 的填充。
标签: python matplotlib pandas