python筆記:df.plot()常見的座標軸的操作,及正常顯示負號

一、 座標軸的label(stackoverflow鏈接)

根據pandas官方文檔

The plot method on Series and DataFrame is just a simple wrapper around plt.plot():

這說明,在matplotlib.pylot上的所有操作,都能在pandas.DataFrame.plot或者pandas.Series.plot裏實現。
pyplotaxis()函數可以實現它。

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的起始數值
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)      # 無效!!!!
"""
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章