[英]How can I change my x-axis ticks to show every date on my x-axis in my chart?
[英]How can I offset the x-axis ticks so every other is slightly lower/higher?
我的繪圖上的次要x軸標簽非常密集。 我不想讓它們變小,而是希望彼此向下稍微移動,以使其適合軸內。 像這樣的東西。 我嘗試了標簽填充,但沒有成功。
碼:
fig, ax1 = plt.subplots(figsize=(18, 6))
ax1.plot(data['date_time'], data.Casual, color='g')
ax1.plot(data['date_time'], data.Registered, color='b')
ax1.set(xlabel='', ylabel='Total # of trips started')
ax1.yaxis.label.set_size(13)
ax1.xaxis.set(
major_locator=mdates.DayLocator(),
major_formatter=mdates.DateFormatter('\n\n%A'),
minor_locator=mdates.HourLocator(byhour=range(0,24,1)),
minor_formatter=mdates.DateFormatter('%-H'),
)
ax1.tick_params(axis='x', which='minor', bottom=True)
ax1.set_xbound(data['date_time'][0],data['date_time'][166])
ax1.yaxis.set_ticks(np.arange(0, 550, 50))
ax1.set_ybound(0,550)
ax1.yaxis.grid(True, which='major')
ax1.xaxis.grid(True, which='major', color='green')
#borders
ax1.spines['left'].set_color('0.0')
ax1.spines['right'].set_color('0.0')
ax1.spines['bottom'].set_color('0.0')
# Create offset transform by 74 points in x direction
dx = 74/72.; dy = 0/72.
offset = mpl.transforms.ScaledTranslation(dx, dy, fig.dpi_scale_trans)
# apply offset transform to all x ticklabels.
for label in ax1.xaxis.get_majorticklabels():
label.set_transform(label.get_transform() + offset)
### Trying to move them up and down here ###
labels_formatted = [label if i%2==0 else label+'\n' for i, label in enumerate(ax1.xaxis.get_majorticklabels())]
ax1.set_xticklabels(labels_formatted)
plt.show()
我認為您犯了一個基本錯誤。 您應該在字符串之前添加換行符,因為只有這樣,您才會在下面一行看到標簽文本。 否則,您只是將光標發送到下一行而不打印任何內容。
此外,您需要label.get_text()
來獲取刻度標簽的字符串。 我在下面顯示一個示例答案。 將相同的邏輯應用於您的示例。 我無法這樣做,因為您尚未提供MCVE
import matplotlib.pyplot as plt
import numpy as np
fig, ax = plt.subplots()
x = np.linspace(0, 10, 20)
plt.plot(x, x**2)
fig.canvas.draw()
labels_formatted = [label.get_text() if i%2==0 else '\n'+label.get_text() for i, label in enumerate(ax.xaxis.get_majorticklabels())]
ax.set_xticklabels(labels_formatted)
plt.show()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.