第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在matplotlib中的刻度線之間使x-tick標(biāo)簽居中

在matplotlib中的刻度線之間使x-tick標(biāo)簽居中

開滿天機 2021-03-30 21:14:53
我想讓x-tick日期標(biāo)簽居中于刻度線之間,而不是如以下照片所示,以刻度線為中心。我已經(jīng)閱讀過文檔,但無濟于事-有人知道這樣做的方法嗎?如果有幫助,這是我用于x軸刻度格式的所有內(nèi)容:day_fmt = '%d'   myFmt = mdates.DateFormatter(day_fmt)ax.xaxis.set_major_formatter(myFmt)    ax.xaxis.set_major_locator(matplotlib.dates.DayLocator(interval=1))     for tick in ax.xaxis.get_major_ticks():    tick.tick1line.set_markersize(0)    tick.tick2line.set_markersize(0)    tick.label1.set_horizontalalignment('center')
查看完整描述

3 回答

?
DIEA

TA貢獻1820條經(jīng)驗 獲得超2個贊

一種方法是使用較小的刻度線。這個想法是,您可以設(shè)置次要刻度線,使其位于主要刻度線之間的中間位置,然后手動指定標(biāo)簽。


例如:


import matplotlib.ticker as ticker


# a is an axes object, e.g. from figure.get_axes()


# Hide major tick labels

a.xaxis.set_major_formatter(ticker.NullFormatter())


# Customize minor tick labels

a.xaxis.set_minor_locator(ticker.FixedLocator([1.5,2.5,3.5,4.5,5.5]))

a.xaxis.set_minor_formatter(ticker.FixedFormatter(['1','2','3','4','5']))

三行:


“隱藏”主要刻度線上的1,2,3,4,...

在主要刻度之間的中間設(shè)置次要刻度(假設(shè)您的主要刻度為1,2,3 ...)

手動指定小刻度線的標(biāo)簽。在此,圖中的“ 1”將介于1.0和2.0之間。

這只是一個簡單的例子。您可能希望通過循環(huán)填充列表或其他方式來簡化它。


您還可以嘗試其他定位器或格式化程序。


編輯:或者,如注釋中所建議:


# Hide major tick labels

a.set_xticklabels('')


# Customize minor tick labels

a.set_xticks([1.5,2.5,3.5,4.5,5.5],      minor=True)

a.set_xticklabels(['1','2','3','4','5'], minor=True)


查看完整回答
反對 回復(fù) 2021-04-02
?
達令說

TA貢獻1821條經(jīng)驗 獲得超6個贊

這是使用定位器和格式化程序的替代方法。它可以用于標(biāo)簽之間的任何間距:


# tick_limit: the last tick position without centering (16 in your example)

# offset: how many steps between each tick (1 in your example)

# myticklabels: string labels, optional (range(1,16) in your example)


# need to set limits so the following works:

ax.xaxis.set_ticks([0, tick_limit]) 

# offset all ticks between limits:

ax.xaxis.set(ticks=np.arange(offset/2., tick_limit, offset), ticklabels=myticklabels)

# turn off grid

ax.grid(False)

由于這會修改主要刻度線,因此可能必須調(diào)整網(wǎng)格-取決于應(yīng)用程序。也可以使用ax.twinx())解決此問題。這將導(dǎo)致在單獨軸的相反側(cè)上移動標(biāo)簽,但將保持原始網(wǎng)格不變,并提供兩個網(wǎng)格,一個用于原始刻度,一個用于偏移。


編輯:


假設(shè)整數(shù)刻度線等距分布,這可能是最簡單的方法:


ax.set_xticks([float(n)+0.5 for n in ax.get_xticks()])


查看完整回答
反對 回復(fù) 2021-04-02
  • 3 回答
  • 0 關(guān)注
  • 985 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號