如何创建漂亮的一维图形?

时间:2018-06-02 22:10:55

标签: python pandas matplotlib seaborn

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等的标记。标签上标注了抽动的含义。

这是一个非常粗略的想法草图:enter image description here

我正在尝试,但还没有办法做这个熊猫或海狸。它甚至可能吗?

1 个答案:

答案 0 :(得分:2)

绘制散点图,隐藏刺和& x轴使用annotate函数来放置文本。最后,玩定位直到对齐似乎正确

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']))

vertical number line