我有代码:
norm_reviews = pd.read_csv('fandango_scores.csv')
fig = plt.figure(figsize=(5, 20))
ax1 = fig.add_subplot(4, 1, 1)
ax2 = fig.add_subplot(4, 1, 2)
ax3 = fig.add_subplot(4, 1, 3)
ax4 = fig.add_subplot(4, 1, 4)
subplot_list = [ax1, ax2, ax3, ax4]
columns_for_visualization = ['Fandango_Ratingvalue', 'RT_user_norm', 'Metacritic_user_nom', 'IMDB_norm']
for i in range(0, len(subplot_list)):
subplot_list[i] = subplot_list[i].hist(norm_reviews[columns_for_visualization[i]], bins=20, range=(0, 5))
subplot_list[i] = subplot_list[i].set_title('Distribution ' + columns_for_visualization[i])
plt.show()问题是,循环中的第一行可以工作,但第二行不能工作:
subplot_list[i] = subplot_list[i].hist(norm_reviews[columns_for_visualization[i]], bins=20, range=(0, 5))
subplot_list[i] = subplot_list[i].set_title('Distribution ' + columns_for_visualization[i])错误:
Traceback (most recent call last):
File "C:/ML/DataQuest/Data visualisazation/visualization.py", line 17, in <module>
subplot_list[i] = subplot_list[i].set_title('Distribution ' + columns_for_visualization[i])
AttributeError: 'tuple' object has no attribute 'set_title'但是为什么第一行行得通呢?为什么第二条线不起作用?
发布于 2019-03-03 20:03:37
这将会起作用
for sub_plot, col_for_visualization in zip(subplot_list, columns_for_visualization):
sub_plot.hist(norm_reviews[col_for_visualization], bins=20, range=(0, 5))
sub_plot.set_title('Distribution ' + col_for_visualization )
plt.show()您的代码不能工作的原因是您实际上在第一行重新分配了subplot_list[i]的内容。到第二行时,内容不再是ax对象,而是hist函数返回的任何内容。
发布于 2019-03-03 21:01:15
我已经找到了解决方案:
for i in range(0, len(subplot_list)):
subplot_list[i].hist(norm_reviews[columns_for_visualization[i]], bins=20, range=(0, 5))
subplot_list[i].set_title('Distribution ' + columns_for_visualization[i])https://stackoverflow.com/questions/54968510
复制相似问题