df = pd.DataFrame({"labels": ["This is a long label",
"And this is also a long label",
"Wow its a label thats pretty long",
"Can you follow the pattern here?"],
"values": [2.2, 1.2, 3.0, 4.1]})
在真实示例中,我有大约 15 个标签和值。鉴于此,我想显示一个轴,标记为 2.2、1.2、3.0 和 4.1,每个轴都标有相应的标签。我的标签很长,所以我认为它们需要以对角线显示或使用其他类型的设备显示,以便标签保持清晰。
澄清
需要说明的是,我想要一个轴,没有图形字段。它会像一条数字线,上面有值的刻度线 -- 2.2、1.2 等。标签表示这些刻度线代表什么。
我正在试验,但还没有找到做这个 pandas 或 seaborn 的方法。有可能吗?
最佳答案
绘制散点图,隐藏脊柱和 x 轴,使用注释功能放置文本。最后,调整定位直到对齐看起来正确
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
ax.xaxis.set_visible(False)
ax.spines['right'].set_visible(False)
ax.spines['top'].set_visible(False)
ax.spines['bottom'].set_visible(False)
ax.scatter([0]*len(df), df['values'], marker='d', s=100, c='r')
ax.set_xlim(-0.1,5)
for _, r in df.iterrows():
ax.annotate(r['labels'], xy=(0.20, r['values']))
关于python - 如何创建漂亮的一维图?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50661574/