一、 座標軸的label(stackoverflow鏈接)
The plot method on Series and DataFrame is just a simple wrapper around plt.plot():
這說明,在matplotlib.pylot
上的所有操作,都能在pandas.DataFrame.plot
或者pandas.Series.plot
裏實現。
pyplot
的axis()函數可以實現它。
df.plot()
plt.axis('off')
plt.show()
plt.close()
如果要隱藏單個的座標軸可以用.get_xaxis()函數
"""例如x座標軸"""
df.plot()
ax1 = plt.axes()
x_axis = ax1.axes.get_xaxis()
x_axis.set_visible(False)
plt.show()
plt.close()
類似的,隱藏隱藏單個座標軸標籤:
df.plot()
ax1 = plt.axes()
x_axis = ax1.axes.get_xaxis()
x_axis.set_label_text('foo')
x_label.set_visible(False)
plt.show()
plt.close()
"""或者這樣"""
ax1 = plt.axes()
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)
二、負號不顯示
負號不能顯示的很大可能是你用的font裏邊沒有負號。見matplotlib unicode_minuspy,添加如下參數解決問題:
plt.rcParams['axes.unicode_minus'] = False
三、調整subplots的xaxis的起始數值
- 一般情況下,單個figure(即非subplots),使用plt.xlim(官方文檔鏈接)
plt.xlim(left=起始數, right=結束數) # 等價於plt.xlim([left=起始數, right=結束數])
"""注意這樣用無效: plt.xlim = (left=起始數, right=結束數) """
- 但是,
plt.
開頭的設定往往在subplots中只對最後一個圖有效
"""例如做一個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)) # np.round() 用來空值小數點位數,此處爲設爲0(實際還是 .0形式結尾)
tb = A.tables[0] # 爲什麼A.tables加 [0]還沒弄明白,只知道沒有的話不能取出來table進行自定義調整
tb.auto_set_font_size(False) # 首先沉默所謂的自動調整字體大小功能,實際上True條件下的字體小的看不到。
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往往不會顯示每個單位點,這樣可以解決問題
A.set_xlim(xmin=0) # 設定x軸的最小值,此處爲0
"""注意:
ax[0].set_xlim(left, right) # 無效!!!!
"""