我有下面的代码。
我正在尝试遍历 Dataframe (newerdf)的列,并为每个列绘制直方图。
然后将每个出图储存为桌面上的. png档案。
但是,下面的代码给出了错误:* 'numpy. ndarray'对象没有'tick_params'属性。*
我会非常感激你的帮助!
listedvariables = ['distance','age']
for i in range(0,len(listedvariables)):
x = newerdf[[listedvariables[i]]].hist(figsize=(50,50))
x.tick_params(axis='x',labelsize=60)
x.tick_params(axis='y',labelsize=60)
x.set_xlabel(var,fontsize=70,labelpad=30,weight='bold')
x.set_ylabel('Number of participants',fontsize=70,labelpad=30,weight='bold')
x.set_title(var,fontsize=70,pad=30,weight='bold')
dir_name = "/Users/macbook/Desktop/UCL PhD Work/"
plt.rcParams["savefig.directory"] = os.chdir(os.path.dirname(dir_name))
plt.savefig(var+' '+'histogram')
plt.show()
newerdf ['age']的前10行如下所示:
0 21.0
1 24.0
2 47.0
3 32.0
5 29.0
6 29.0
7 22.0
8 23.0
9 32.0
10 22.0
2条答案
按热度按时间f87krz0w1#
DataFrame.hist()
函数根据它的documentation返回一个matplotlib轴或轴的numpy数组,如果你的数据框有多个列。此函数对DataFrame中的每个系列调用matplotlib.pyplot.hist(),从而为每列生成一个直方图。
因此在这一行中,
x
被设置为numpy数组,而numpy数组没有属性tick_params
。要解决此问题,请循环x中的值,如下所示:
ssm49v7z2#
下面的代码是有效的。
我在df 'newer[df]'和'hist'之间添加了'.plot'。