文章目录
一、负号不显示
负号不能显示的很大可能是你用的font里边没有负号。见matplotlib unicode_minuspy,添加如下参数解决问题:
plt.rcParams['axes.unicode_minus'] = False
二、调整subplots的xaxis的起始数值
- 一般情况下,单个figure使用plt.xlim(官方文档链接)即可:
plt.xlim(left=起始数, right=结束数)
# 等价于plt.xlim([left=起始数, right=结束数])
"""注意这样用无效: plt.xlim = (left=起始数, right=结束数) """
- 但是,
plt.
开头的设定往往在subplots中只对最后一个图有效,所以需要指明设定的ax:
"""例如做一个figure+table的图: """
fig, axes = plt.subplots(1, 2, figsize=(18, 9))
P = pd.pivot_table('<blabla...>')
A = P.plot(ax=axes[0], table=np.round(P.T, 0)) # 转置的原因?plot默认index在水平x轴显示,而table把index垂直显示,所以此处P.T转置一下。
tb = A.tables[0] # A.tables对象为list,但具体是啥还没弄明白
tb.auto_set_font_size(False) # 因为有时候默认条件下字体大小不合适
tb.set_fontsize(8)
ax[0].xaxis.tick_top() # 把x轴从下边移到上边
ax[0].xaxis.set_label_position('top') # 把x轴的名称也移到上边
ax[0].set_title('Title of ax[0]') # 给子图设定标题
ax[0].set_xticks('[list of xticks]') # plt往往会合并显示坐标点,这样可以显示list里每一个值
A.set_xlim(xmin=0) # 设定x轴的最小值,此处为0
"""注意:
ax[0].set_xlim(left, right) 无效!!!!
"""
三、 操作坐标轴的label(stackoverflow链接)
核心:围绕pyplot
的axis()函数就可以实现。
3.1 例如隐藏坐标轴:
df.plot()
plt.axis('off')
plt.show()
plt.close()
3.2 隐藏单个的坐标轴——如x坐标 .get_xaxis()函数:
ax1 = plt.axes()
x_axis = ax1.axes.get_xaxis()
x_axis.set_visible(False)
plt.show()
plt.close()
# 或者这种
fig, axes = plt.subplots(ind_num, col_num) # 生成ind_num * col_num个
axes[0, 1].xaxis.set_visible(False) # 把第一个
3.3 隐藏坐标轴标签:
ax1 = plt.axes()
"""可以这样"""
x_axis = ax1.axes.get_xaxis()
x_axis.set_label_text('foo')
x_label = x_axis.get_label()
x_label.set_visible(False)
plt.show()
plt.close()
"""或者这样"""
x_axis = ax1.xaxis
x_axis.set_label_text('foo')
x_axis.lable.set_visible(False)
# 或者这样:
ax1 = plt.axes()
ax1.xaxis.set_lable_text('foo')
ax1.xaixs.label.set_visible(False)