Python Matplotlib time、xlabel、ylabel、xticks、yticks函数:设置坐标轴

广告位

可以调用 xlable() 和 ylabel() 函数分别设置 X 轴、Y 轴的名称,也可以通过 title(…

可以调用 xlable() 和 ylabel() 函数分别设置 X 轴、Y 轴的名称,也可以通过 title() 函数设置整个数据图的标题,还可以调用 xticks()、yticks() 函数分别改变 X 轴、Y 轴的刻度值(允许使用文本作为刻度值)。

例如,如下程序为数据图添加了名称、标题和坐标轴刻度值:

  import matplotlib.pyplot as plt    x_data = ['2011', '2012', '2013', '2014', '2015', '2016', '2017']  # 定义2个列表分别作为两条折线的Y轴数据  y_data = [58000, 60200, 63000, 71000, 84000, 90500, 107000]  y_data2 = [52000, 54200, 51500,58300, 56800, 59500, 62700]  # 指定折线的颜色、线宽和样式  plt.plot(x_data, y_data, color = 'red', linewidth = 2.0,      linestyle = '--', label='Java基础')  plt.plot(x_data, y_data2, color = 'blue', linewidth = 3.0,      linestyle = '-.', label='C基础')  import matplotlib.font_manager as fm  # 使用Matplotlib的字体管理器加载中文字体  my_font=fm.FontProperties(fname="C:WindowsFontssimkai.ttf")  # 调用legend函数设置图例  plt.legend(loc='best')  # 设置两条坐标轴的名字  plt.xlabel("年份")  plt.ylabel("教程销量")  # 设置数据图的标题  plt.title('C语言中文网的历年销量')  # 设置Y轴上的刻度值  # 第一个参数是点的位置,第二个参数是点的文字提示  plt.yticks([50000, 70000, 100000],      [r'挺好', r'优秀', r'火爆'])  # 调用show()函数显示图形  plt.show()

运行上面程序,可以看到如图 1 所示的效果。

Python Matplotlib time、xlabel、ylabel、xticks、yticks函数:设置坐标轴
图 1 为数据图添加名称、标题和坐标轴刻度值

上面程序中的前两行粗体字代码分别设置了 X 轴、Y 轴的 label,因此可以看到图 1 中的 X 轴和 Y 轴的标签发生了改变。

如果要对 X 轴、Y 轴进行更细致的控制,则可调用 gca() 函数来获取坐标轴信息对象,然后对坐标轴进行控制。比如控制坐标轴上刻度值的位置和坐标轴的位置等。

下面程序示范了对坐标轴的详细控制:

  import matplotlib.pyplot as plt    x_data = ['2011', '2012', '2013', '2014', '2015', '2016', '2017']  # 定义2个列表分别作为两条折线的Y轴数据  y_data = [58000, 60200, 63000, 71000, 84000, 90500, 107000]  y_data2 = [52000, 54200, 51500,58300, 56800, 59500, 62700]  # 指定折线的颜色、线宽和样式  plt.plot(x_data, y_data, color = 'red', linewidth = 2.0,      linestyle = '--', label='Java基础')  plt.plot(x_data, y_data2, color = 'blue', linewidth = 3.0,      linestyle = '-.', label='C语言基础')  import matplotlib.font_manager as fm  # 使用Matplotlib的字体管理器加载中文字体  my_font=fm.FontProperties(fname="C:WindowsFontssimkai.ttf")  # 调用legend函数设置图例  plt.legend(loc='best')  # 设置两条坐标轴的名字  plt.xlabel("年份")  plt.ylabel("教程销量")  # 设置数据图的标题  plt.title('C语言中文网的历年销量')  # 设置Y轴上的刻度值  # 第一个参数是点的位置,第二个参数是点的文字提示  plt.yticks([50000, 70000, 100000],      [r'挺好', r'优秀', r'火爆'])  ax = plt.gca()  # 设置将X轴的刻度值放在底部X轴上  ax.xaxis.set_ticks_position('bottom')  # 设置将Y轴的刻度值放在底部X轴上  ax.yaxis.set_ticks_position('left')  # 设置右边坐标轴线的颜色(设置为none表示不显示)  ax.spines['right'].set_color('none')  # 设置顶部坐标轴线的颜色(设置为none表示不显示)  ax.spines['top'].set_color('none')  # 定义底部坐标轴线的位置(放在70000数值处)  ax.spines['bottom'].set_position(('data', 70000))  # 调用show()函数显示图形  plt.show()

上面程序获取了数据图上的坐标轴对象,它是一个 AxesSubplot 对象。接下来程序调用 AxesSubplot 的 xaxis 属性的 set_ticks_position() 方法设置 X 轴刻度值的位置;与之对应的是,调用 yaxis 属性的 set_ticks_position() 方法设置 Y 轴刻度值的位置。

通过 AxesSubplot 对象的 spines 属性可以访问数据图四周的坐标轴线(Spine 对象),通过 Spine 对象可设置坐标轴线的颜色、位置等。例如,程序将数据图右边和顶部的坐标轴线设为 none,表示隐藏这两条坐标轴线。程序还将底部坐标轴线放在数值 70000 处。

运行上面程序,可以看到如图 2 所示的效果。

Python Matplotlib time、xlabel、ylabel、xticks、yticks函数:设置坐标轴
图 2 控制坐标轴

关于作者: Python基础入门教程

为您推荐

广告位

发表评论