Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 多轴不从零开始_Python_Matplotlib - Fatal编程技术网

Python 多轴不从零开始

Python 多轴不从零开始,python,matplotlib,Python,Matplotlib,我画了一个具有多轴的图,有几个问题: 为什么左侧y轴未从零开始转动。(我指的是零点 不是在y轴的开始处) 我只想要x轴的主网格(每周的主网格线),但是代码添加了一个mjor y轴的网格也是如此 如何为y轴(红色网格(ax2))添加次要网格 我想将x轴标签(日期)的颜色更改为黑色 import matplotlib.pyplot as plt Hits= pd.read_excel("stackoverflow_example.xlsx", sheet_name=&quo

我画了一个具有多轴的图,有几个问题:

  • 为什么左侧y轴未从零开始转动。(我指的是零点 不是在y轴的开始处)

  • 我只想要x轴的主网格(每周的主网格线),但是代码添加了一个mjor y轴的网格也是如此

  • 如何为y轴(红色网格(ax2))添加次要网格

  • 我想将x轴标签(日期)的颜色更改为黑色

    import matplotlib.pyplot as plt
    Hits= pd.read_excel("stackoverflow_example.xlsx", sheet_name="data")
    
    fig=plt.figure(figsize=(20,10))
    
    ax=fig.add_subplot(111, label="1")
    ax2=fig.add_subplot(111, label="2", frame_on=False)
    
    ax.bar(Hits['Date'], Hits['Total'], width=0.35, color="b" )
    ax.set_ylabel('Hits', color="b",size=16)
    ax.yaxis.set_label_position('right') 
    ax.tick_params(axis='y', colors="b")
    
    ax.tick_params(axis='x', colors="b", rotation=45)
    ax.yaxis.tick_right()
    
    ax2.plot(Hits['weeks'], Hits['Cases'], linewidth= 3.5, color="Red")
    ax2.set_ylabel("Cases", color="Red",size=16)
    ax2.tick_params(axis='y', colors="Red", size=16)
    ax2.xaxis.set_ticks_position('top')
    
    major_ticks = np.arange(0, 10, 1)
    ax.set_xticks(major_ticks)
    ax.grid(which='major', alpha=0.5)
    
    plt.show()
    
  • 我的数据

    [

    图表:


    如果要从零开始,可以使用“ax2.set_ylim()”。然后,可以指定网格的轴。如果颜色为黑色,可以设置color='k'

    import matplotlib.pyplot as plt
    
    fig=plt.figure(figsize=(20,10))
    
    ax=fig.add_subplot(111, label="1")
    ax2=fig.add_subplot(111, label="2", frame_on=False)
    
    ax.bar(Hits['Date'], Hits['Total'], width=0.35, color="b" )
    ax.set_ylabel('Hits', color="b",size=16)
    ax.yaxis.set_label_position('right') 
    ax.tick_params(axis='y', colors="b")
    
    ax.tick_params(axis='x', colors="k", rotation=45)
    ax.yaxis.tick_right()
    
    ax2.plot(Hits['weeks'], Hits['Cases'], linewidth= 3.5, color="Red")
    ax2.set_ylabel("Cases", color="Red",size=16)
    ax2.tick_params(axis='y', colors="Red", size=16)
    ax2.xaxis.set_ticks_position('top')
    ax2.set_ylim(0,62) # update
    major_ticks = np.arange(0, 10, 1)
    ax.set_xticks(major_ticks)
    ax.grid(which='major', axis='x', alpha=0.5) #update
    ax2.grid(which='major', axis='y', alpha=0.5) # update
    
    plt.show()
    

    ax2.grid(which='minor',axis='y',alpha=0.4)…我试图添加此行,但未显示次网格。ax2.set_ylim(0,62)…如果我想将数字增加5…0,5,10,15,20,…,65怎么办?您复制并执行了所有代码吗?以及
    ax2.set_ylim(0,65)
    应该这样做。是的,我超出了代码,它可以工作。但是如果我更灵活一些,例如,y记号随着步长=3或7而增加,我添加了行ax2.yaxis.set_记号([0,3,6,…,66]),它可以工作。还有其他方法吗?