我正在用错误条绘制一些实验的结果。我希望能够在结果与极端异常值的情况下设置y限制,这是不感兴趣的。此代码:
axes = plt.errorbar(feature_data[feature_data.num_unique[feature_of_interest] > 1].index, chi_square_y, yerr=chi_square_y_error, fmt = 'o')
axes.set_ylim([-.2, .2])
plt.plot((min(feature_data[feature_data.num_unique[feature_of_interest] > 1].index), max(feature_data[feature_data.num_unique[feature_of_interest] > 1].index)), (0, 0), 'r--', linewidth = 2)
产生此错误:
AttributeError Traceback (most recent call last)
<ipython-input-79-794286dd3c29> in <module>()
18 rcParams['figure.figsize'] = 10, 5
19 axes = plt.errorbar(feature_data[feature_data.num_unique[feature_of_interest] > 1].index, chi_square_y, yerr=chi_square_y_error, fmt = 'o')
---> 20 axes.set_ylim([-.2, .2])
21 plt.plot((min(feature_data[feature_data.num_unique[feature_of_interest] > 1].index), max(feature_data[feature_data.num_unique[feature_of_interest] > 1].index)), (0, 0), 'r--', linewidth = 2)
AttributeError: 'ErrorbarContainer' object has no attribute 'set_ylim'
我如何设置y的限制?
谢谢!
发布于 2016-09-03 17:47:24
只需使用matplotlib.pyplot.ylim()函数即可。
您的示例不是独立的,因此我无法检查下面的代码是否实际工作,但至少前面提到的错误将被修复:
plt.errorbar(feature_data[feature_data.num_unique[feature_of_interest] > 1].index, chi_square_y, yerr=chi_square_y_error, fmt = 'o')
plt.ylim(-.2, .2)
plt.plot((min(feature_data[feature_data.num_unique[feature_of_interest] > 1].index), max(feature_data[feature_data.num_unique[feature_of_interest] > 1].index)), (0, 0), 'r--', linewidth = 2)
发布于 2016-09-06 10:29:54
由于这是一个赏金问题,我将在这里尝试更多的细节。
plt.errorbar
不返回Axes对象(该对象具有set_ylim
方法),而是返回(plotline, caplines, barlinecols)
的集合。我怀疑您可能期望使用Axes对象,因为这是pandas.DataFrame.plot
返回的内容。
当直接使用matplotlib的pyplot时,您有两个选项:
选项1 -直接使用pyplot,而不处理轴:
plt.errorbar( ... )
plt.ylim([-.2, .2])
使用plt
将属性设置为所选的最后一个子图(默认情况下只有一个)。在处理单个数字时,您可能更喜欢这种方法。
选项2 -从subplots
获取axes对象
fig, ax = plt.subplots(1, 1, figsize=(10, 5))
ax.errorbar( ... )
ax.set_ylim([-.2, .2])
这可能是首选方法,部分原因是它允许在rcParams
中设置图形大小而不需要全局设置。它还有其他一些我不会进入这里的优点。
注意,在使用plt
时,方法是ylim
,使用Axes对象时是set_ylim
。许多其他属性,如标题、标签等,都是如此。
https://stackoverflow.com/questions/39260561
复制相似问题