![](/img/trans.png)
[英]Why do I need to remove patches twice from my matplotlib Axes in order to remove them all?
[英]Why do I feel restricted with my tick direction choices in matplotlib? (controlling separate axes)
我已經使用“in”、“out”在 rcParams 中設置刻度方向,打開和關閉左側、右側、底部和頂部刻度,但我還沒有找到一種方法來做一些看起來如此簡單的事情。 我只希望左右 y 軸都朝左,頂部和底部 x 軸朝下。
我該怎么做呢? 有沒有辦法在創建后更改 Tick 對象?
這是我玩弄一些我可能不完全理解的東西的片段:
from pylab import *
from numpy import *
import matplotlib.pyplot as plt
% matplotlib inline
plt.rc("font",size=18)
plt.rc("figure",figsize=(14,3.5))
matplotlib.rcParams.update({'ytick.left': True})
rc("ytick",direction="in")
matplotlib.rcParams.update({'ytick.right': True})
rc("ytick",direction="out")
#rc("ytick.major",left=True)
#rc("ytick.major",right=True)
#plt.rc("ytick",left=False)
# test
y = [2,3,4,5,6,7,8,9,12,13,4,23,23,34,3]
x = [i for i in range(len(y))]
plot(x,y)
現在我正在嘗試在 Jupyter 筆記本中執行此操作。
編輯:我找到了一個相當可以接受的解決方案並將其放在評論中。
因此,經過聰明同事的一些修補和輸入,我最好的解決方案是這樣的:
import matplotlib.pyplot as plt
import mpl_toolkits.axisartist as aa
% matplotlib inline
y = array([3,2,4,5,7,8])
x = [i for i in range(len(y))]
fig = plt.figure()
#*********************************************************
#****************** Here's the magic**********************
#*********************************************************
ax = aa.Subplot(fig,111) # 1 row, 1 column, 1st plot
fig.add_subplot(ax)
ax.axis["bottom","left"].major_ticks.set_tick_out(True)
ax.axis["bottom","left"].minor_ticks.set_tick_out(True)
ax.axis["top","right"].major_ticks.set_tick_out(False)
ax.axis["top","right"].minor_ticks.set_tick_out(False)
#*********************************************************
ax.plot(x,y)
ax.plot(x,y2)
#ax.set_ylim(0,30)
ax.set_yscale("log")
ax.set_xscale("log")
重要的部分似乎是使用axisartist 創建子圖,因為當我嘗試使用“plt.subplots()”時,我在嘗試調用axis["bottom"] 時會出錯。
這對我來說很奇怪,因為我認為 axisartist 總是用來用 matplotlib 繪制軸。 我很想聽聽比我了解得更透徹的人的更詳細的解釋。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.