gpt4 book ai didi

python - Matplotlib:如何使网格的替代垂直线变为虚线?

转载 作者:行者123 更新时间:2023-12-04 10:16:05 26 4
gpt4 key购买 nike

如果我有简单的整数 x 轴,我可以使用 plt.axvline(value)获得垂直
线,但我想知道当我们有字符串 x 轴标签时如何获得垂直虚线。

设置

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

%matplotlib inline


np.random.seed(123)

x = np.random.normal(0,1,100)
xx = pd.cut(x,20).to_numpy().astype(str)

yy = np.random.normal(0,1,100)

plt.plot(xx,yy,'o')
plt.xticks(rotation=90)
plt.grid(True)

plt.show()

必需的
  • 网格图中的每隔一条垂直线被虚线和彩色。

  • 电流输出

    enter image description here

    最佳答案

    plt.xticks()返回 x 刻度位置和标签,因此我们可以通过索引 [0] 来访问这些位置。 .事实证明,这只是一个连续整数值的列表,因此我们可以遍历它们并手动绘制网格线,每隔一个使用不同的样式。与 plt.grid(True, axis='y')我们确保只为 y 轴绘制自动网格,这样就不会干扰我们自定义的垂直线。

    import numpy as np
    import pandas as pd
    import matplotlib.pyplot as plt

    %matplotlib inline


    np.random.seed(123)

    x = np.random.normal(0,1,100)
    xx = pd.cut(x,20).to_numpy().astype(str)

    yy = np.random.normal(0,1,100)

    plt.plot(xx,yy,'o')
    plt.xticks(rotation=90)

    ############################
    # new code below #
    ############################

    plt.grid(True, axis='y')

    for tick in plt.xticks()[0]:
    if tick % 2 == 0:
    plt.axvline(tick, color='gray', linestyle='-', linewidth=1, alpha=.5)
    else:
    plt.axvline(tick, color='red', linestyle='--', linewidth=1, alpha=1)

    Custom Grid

    关于python - Matplotlib:如何使网格的替代垂直线变为虚线?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61050811/

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