gpt4 book ai didi

python - 带极轴的条形图

转载 作者:行者123 更新时间:2023-12-03 17:15:19 25 4
gpt4 key购买 nike

我想让我的情节与此类似-

enter image description here

目前,我能得到的是:

enter image description here

我无法执行以下操作:

  • 获取内圈内的时间标签
  • 获取圆圈内的刻度。这个问题 - How to create minor ticks for polar plot matplotlib ,有一个我尝试过的想法,但它与情节的其他部分搞砸了。
  • 时间标签仅在步长为 3 时才能正常工作。对于其他步长,它不会与条形对齐。

  • 以下是生成绘图的可重现代码
    arr = np.random.randint(0, 24, size = 50000)
    df = pd.DataFrame({"COL": arr}).COL.value_counts().sort_index()

    N = 24
    bottom = 1000
    theta, width = np.linspace(0.0, 2 * np.pi, N, endpoint=False, retstep=True)

    plt.figure(figsize = (10, 6))
    ax = plt.subplot(111, polar=True)

    bars = ax.bar(
    theta, df,
    width=width-0.03,
    bottom=bottom,
    color="#f39c12", edgecolor="black"
    )
    bars = ax.bar(
    theta, [3000]*24,
    width=width-0.03,
    bottom=bottom,
    color="#f39c12", alpha=0.2
    )

    ax.set_theta_zero_location("N")
    ax.set_theta_direction(-1)
    ax.grid(False)
    ax.spines['polar'].set_visible(False)
    ax.set_rticks([])

    ticks = [f"{i}:00" for i in range(0, 24, 3)]
    ax.set_xticklabels(ticks)

    _ = ax

    最佳答案

    我只是画了两条线和一个圆圈来制作“时钟图标”

    ## Draw a "clock" icon inside of the graph
    ##lines for hands of a clock
    x1, y1 = [0, 90], [0, 0.5*bottom]
    x2, y2 = [0,0], [0, 0.5*bottom]
    plt.plot(x1, y1, x2, y2, linewidth=2.5, solid_capstyle='round', color='#0066ff', alpha=1)

    ##circle for clockface
    circle = pl.Circle((0, 0), 0.65*bottom, transform=ax.transData._b, linewidth=3, fill=False, color="#0066ff", alpha=1)
    ax.add_artist(circle)

    你有没有想过如何在时钟里面写数字?

    关于python - 带极轴的条形图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49709030/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com