【问题标题】:Matplotlib: Change distance between two x-axis tick marks on plotMatplotlib:更改绘图上两个 x 轴刻度线之间的距离
【发布时间】:2022-01-22 01:27:42
【问题描述】:

我正在尝试为两个标签的一堆概率值创建一个散点图,但是当我绘制它时,标签显示为左对齐和右对齐,因此中间有一堆空白。有没有办法缩小两个 x 轴刻度线之间的间隙?

这是我使用的代码:

x = [1,2]
y = [[0.1, 0.6, 0.9],[0.5,0.7,0.8]]
colors = ['magenta', 'blue']
plt.title("Algorithm comparison - p-values")
for xe, ye,c in zip(x, y,colors):
    plt.scatter([xe] * len(ye), ye, c=c)
plt.xticks([1,2])
plt.axes().set_xticklabels(['Part 1','Part 2'],rotation = 45)

提前致谢!如果我遗漏了任何重要的细节,请告诉我。

【问题讨论】:

    标签: python matplotlib


    【解决方案1】:

    我已经尽可能地重写了代码。主要问题是您生成了两个轴对象——一个带有for xe, ye,c in zip(x, y,colors): plt.scatter([xe] * len(ye), ye, c=c),另一个带有plt.axes().set_xticklabels(['Part 1','Part 2'],rotation = 45)。您可以直接使用plt.xticks() 提供标签:

    import matplotlib.pyplot as plt
    
    x = [1,2]
    y = [[0.1, 0.6, 0.9],[0.5,0.7,0.8]]
    colors = ['red', 'blue']
    plt.title("Algorithm comparison - p-values")
    for xe, ye,c in zip(x, y,colors):
        plt.scatter([xe] * len(ye), ye, c=c)
    plt.xticks([1,2], ['Part 1','Part 2'], rotation = 45)
    
    plt.show()
    

    最好在开始时创建一个轴对象并使用此轴对象绘制所有内容:

    import matplotlib.pyplot as plt
    
    fig, ax = plt.subplots()
    x = [1,2]
    y = [[0.1, 0.6, 0.9],[0.5,0.7,0.8]]
    colors = ['red', 'blue']
    ax.set_title("Algorithm comparison - p-values")
    for xe, ye, c in zip(x, y, colors):
        ax.scatter([xe] * len(ye), ye, c=c)
    ax.set_xticks(x)
    ax.set_xticklabels(['Part 1','Part 2'],rotation = 45)
    ax.set_xlim(0.5, 2.5)
    plt.show()
    

    示例输出:

    有关面向对象方法和 plt 接口之间差异的更多说明,请参见 herethe matplotlib documentation

    【讨论】:

    • 非常感谢!出于好奇,如果有两组不同的数据,每组都有“第 1 部分”和“第 2 部分”,将如何绘制呢?喜欢这张图片,但上面有散点图? tutorialspoint.com/matplotlib/images/multiple_bar_charts.jpg
    • 如果你已经有一个 pandas 数据框,Seaborn 很容易生成 stripplots。由于 seaborn 是基于 matplotlib 的,所以你当然可以模仿这个。只需偏移 x 值,例如,对于多个散布组,part 1 为 0.9 和 1.1,part 2 为 1.9 和 2.1。请记住,我们刚刚重命名了 x 轴上的数值 1 和 2,并用 part 1part 2 标记了它们,但它们仍然是这些数值
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多