[英]Put a kink in x axis in seaborn or matplotlib - python
以下方法:
x=40
處)clip_on=False
在主軸區域外繪制,並使用ax.get_xaxis_transform()
為x
使用“數據坐標” ,為y
使用“軸坐標”(底部為0
,底部為1
最佳); 從書脊復制粗細和線條顏色0
import matplotlib.pyplot as plt
import numpy as np
data = np.random.randint(50, 89, 80)
bins = np.arange(50, data.max()+6, 5)
fig, ax = plt.subplots(figsize=(12,5))
ax.hist(data, bins=bins, fc='skyblue', ec='navy')
false_zero = bins[0] - 10
ax.set_xticks(np.append(false_zero, bins))
ax.set_xticklabels(np.append(0, bins))
for spine in ['top', 'right', 'bottom']:
ax.spines[spine].set_visible(False)
ax.add_line(plt.Line2D(xdata=[false_zero, false_zero + 2, false_zero + 4, false_zero + 4, false_zero + 6, bins[-1] + 1],
ydata=[0, 0, 0.1, -0.1, 0, 0],
color=ax.spines['bottom'].get_edgecolor(), lw=ax.spines['bottom'].get_linewidth(),
clip_on=False, transform=ax.get_xaxis_transform()))
plt.tight_layout()
plt.show()
PS:對於原帖的扭結:
ax.add_line(plt.Line2D(xdata=[false_zero, false_zero + 2, false_zero + 2, false_zero + 6, false_zero + 6, bins[-1] + 1],
ydata=[0, 0, 0.1, -0.1, 0, 0], ...))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.