我试图按如下方式绘制箱线图:
import matplotlib.pyplot as plt
plt.figure()
plt.xlabel("X")
plt.ylabel("Y")
plt.xticks([1,2,3,4], ["a", "b", "c", "d"])
plt.boxplot(data)
plt.show()
但是,plt.xticks
出现错误,表示元组对象不可调用。我的x轴标有1,2,3,4而不是' a'''' c'' d' ;。
我在这里关注教程:Rotating custom tick labels
答案 0 :(得分:3)
你构建情节的顺序很重要;您必须首先使用数据创建绘图,然后根据需要调整设置:
import matplotlib.pyplot as plt # <-- you had a typo here
plt.figure()
plt.xlabel("X")
plt.ylabel("Y")
plt.boxplot([1, 1, 2, 3, 4])
plt.xticks([1,2,3,4], ["a", "b", "c", "d"])
plt.show()
答案 1 :(得分:1)
发生这种情况的另一个原因是,如果您错误地重新定义了plt.xticks
。例如,如果您不小心运行:
plt.xticks = ([1,2,3,4], ['a','b','c','d']) #wrong format, uh oh
现在,您已经将plt.xticks
重新定义为元组变量。然后您以正确的方式调用它:
plt.xticks([1,2,3,4], ["a", "b", "c", "d"])
尝试调用元组会出错。一种简单的解决方案是重新启动会话,或者至少重新导入matplotlib.pyplot,这会覆盖您创建的错误变量。