plt.figure中设置及调整xlabel、ylabel位置、字体大小和标签方向,以及X轴刻度标签位置、大小

您所在的位置:网站首页 电脑上怎么改变字体方向和大小字体设置 plt.figure中设置及调整xlabel、ylabel位置、字体大小和标签方向,以及X轴刻度标签位置、大小

plt.figure中设置及调整xlabel、ylabel位置、字体大小和标签方向,以及X轴刻度标签位置、大小

2024-07-16 08:35:00| 来源: 网络整理| 查看: 265

我们拿一个最简单的plt绘图案例举例说明: (存贴自用)

import matplotlib.pyplot as plt y=[1,6,5,2,7,1,4,3,6,2] x=[m for m in range(len(y))] plt.figure() plt.plot(x,y)#对于x从零开始时,plt.plot(y)效果是一样的 plt.show()

在这里插入图片描述

1、xlabel、ylabel的调整 label的创建

对于上面那幅极致简单的图片来说,缺少必要的X轴Y轴说明,我们可以使用label参数设置其x、y轴的标签:

import matplotlib.pyplot as plt y=[1,6,5,2,7,1,4,3,6,2] x=[m for m in range(len(y))] plt.figure() plt.xlabel('Time') plt.ylabel('Cost') plt.plot(x,y) plt.show()

在这里插入图片描述

label的大小

这下似乎看起来可以了,已经可以让别人知道X轴Y轴表示的啥意思了,但是X轴Y轴标签太小或太大怎么办?plt提供了参数:

import matplotlib.pyplot as plt y=[1,6,5,2,7,1,4,3,6,2] x=[m for m in range(len(y))] plt.figure() plt.xlabel('Time',fontsize=20)#直接调整fontsize中的值就可以了 plt.ylabel('Cost',fontsize=20) plt.plot(x,y) plt.show()

在这里插入图片描述 像我这样将fontszie设置为20,X轴标签似乎有点太极限贴近下边界了,我们可以适当调整figure大小:

import matplotlib.pyplot as plt y=[1,6,5,2,7,1,4,3,6,2] x=[m for m in range(len(y))] plt.figure(figsize=(15,8))#figsize控制figure大小 plt.xlabel('Time',fontsize=20) plt.ylabel('Cost',fontsize=20) plt.plot(x,y) plt.show()

在这里插入图片描述

xylabel的位置与方向的调整 import matplotlib.pyplot as plt y=[1,6,5,2,7,1,4,3,6,2] x=[m for m in range(len(y))] plt.figure(figsize=(15,8)) plt.xlabel('Time',fontsize=20, rotation=45, ha='right', va='top') plt.ylabel('Cost',fontsize=20, rotation=90, ha='center', va='bottom') plt.plot(x,y) plt.show() rotation表示顺时针旋转的角度,记得旋转中心是字符串的形状中心。 你就把label看做一条向量,中心点的位置就是旋转中心,指向label末尾字符,X轴初始默认为0,Y轴默认为90,想要什么角度转就可以了。ha的参数选择有:‘center’, ‘right’, ‘left’。 表示水平方向的位置,这个水平方向指的是平行坐标轴的方向,即Y轴的ha表示标签在平行于y轴方向上在左、右或中间哪个位置,坐标轴原点为左。va的参数选择有’top’, ‘bottom’, ‘center’, ‘baseline’,‘center_baseline’。 表示垂直方向的位置,同样的这里的垂直方向指的也是垂直于坐标轴的方向,靠近坐标轴称top,远离坐标轴接近figure边界称bottom。

在这里插入图片描述 如果你想精确一点坐标轴标签距离坐标轴的位置,你可以借助pad参数调整:

import matplotlib.pyplot as plt y=[1,6,5,2,7,1,4,3,6,2] x=[m for m in range(len(y))] plt.figure(figsize=(15,8)) plt.xlabel('Time',fontsize=20, rotation=45, ha='right', va='top') plt.ylabel('Cost',fontsize=20, rotation=90, ha='center', va='bottom',labelpad=50) plt.plot(x,y) plt.show()

labelpad表示标签距离坐标轴的距离,越远离越大 在这里插入图片描述

2、X轴刻度标签的调整

一般来说,我们只需要使用plt.plot(x,y)就能把两个轴的刻度部署到对应轴上了,但是我们可能会有一些特殊的需求或者调整。 拿个例子说明一下X轴刻度标签的调整,让X轴显示具体时间:

import matplotlib.pyplot as plt import datetime y=[1,6,5,2,7,1,4,3,6,2] x=[m for m in range(len(y))] dtime=[] for i in range(len(y)): time_format = datetime.datetime.fromtimestamp(1667663400+i*86400) dtime.append(str(time_format)[:10]) plt.figure(figsize=(15,8)) plt.xlabel('Time',fontsize=20, rotation=0, ha='right', va='top',labelpad=15) plt.ylabel('Cost',fontsize=20, rotation=90, ha='center', va='bottom',labelpad=50) plt.plot(dtime,y) plt.show()

在这里插入图片描述 这面临一个问题,如果我的点太密,X轴显示的刻度标签就会堆叠起来,就需要进行X轴刻度标签的调整: 在这里插入图片描述

第一种方法 让刻度值均匀显示: import matplotlib.pyplot as plt import datetime from matplotlib.ticker import MultipleLocator y=[1,6,5,2,7,1,4,3,6,2] x=[m for m in range(len(y))] dtime=[] for i in range(len(y)): time_format = datetime.datetime.fromtimestamp(1667663400+i*86400) dtime.append(str(time_format)[:]) plt.figure(figsize=(15,8)) plt.xlabel('Time',fontsize=20, rotation=0, ha='right', va='top',labelpad=15) plt.ylabel('Cost',fontsize=20, rotation=90, ha='center', va='bottom',labelpad=50) x_major_locator = MultipleLocator(len(dtime) // 5)#此处最后的数字“5”为欲显示刻度数量,会均匀地显示5个刻度 ax = plt.gca() ax.xaxis.set_major_locator(x_major_locator) # xindex=[2,6,8] # plt.xticks(xindex, [dtime[m] for m in xindex]) plt.plot(dtime,y)#这里X轴对应的是dtime plt.show()

在这里插入图片描述

第二种方法 可以自己设置要显示的刻度 import matplotlib.pyplot as plt import datetime y=[1,6,5,2,7,1,4,3,6,2] x=[m for m in range(len(y))] dtime=[] for i in range(len(y)): time_format = datetime.datetime.fromtimestamp(1667663400+i*86400) dtime.append(str(time_format)[:]) plt.figure(figsize=(15,8)) plt.xlabel('Time',fontsize=20, rotation=0, ha='right', va='top',labelpad=15) plt.ylabel('Cost',fontsize=20, rotation=90, ha='center', va='bottom',labelpad=50) xindex=[0,2,4,6,8] plt.xticks(xindex, [dtime[m] for m in xindex])#自由显示刻度,xindex存一下要显示的刻度从0开始的下标即可 plt.plot(range(len(dtime)),y)#这里X轴用位置替代 plt.show()

在这里插入图片描述

坐标轴及折线线条的粗细调整 关于坐标轴的调整

在这里要搞清楚一件事,X轴与figure下边轴、Y轴与figure左边轴他不是一码事,举例来说我们要加深X轴Y轴的粗细:

import matplotlib.pyplot as plt import datetime from matplotlib.ticker import MultipleLocator y=[1,6,5,2,7,1,4,3,6,2] x=[m for m in range(len(y))] dtime=[] for i in range(len(y)): time_format = datetime.datetime.fromtimestamp(1667663400+i*86400) dtime.append(str(time_format)[:]) plt.figure(figsize=(15,8)) plt.xlabel('Time',fontsize=20, rotation=0, ha='right', va='top',labelpad=15) plt.ylabel('Cost',fontsize=20, rotation=90, ha='center', va='bottom',labelpad=50) x_major_locator = MultipleLocator(len(dtime) // 5) ax = plt.gca() ax.xaxis.set_major_locator(x_major_locator) # xindex=[2,6,8] # plt.xticks(xindex, [dtime[m] for m in xindex]) plt.axhline(linewidth=5, color='black') # X 轴线条粗细 plt.axvline(linewidth=5, color='black') # Y 轴线条粗细 plt.plot(dtime,y) plt.show()

在这里插入图片描述 很容易明白,此时直接用axhline捕获到的是0水平轴,不是我们理解上的X轴,解决办法有两条: 一是顺便调整原点位置,让0,0或者图像起始点就是原点:

import matplotlib.pyplot as plt import datetime from matplotlib.ticker import MultipleLocator y=[1,6,5,2,7,1,4,3,6,2] x=[m for m in range(len(y))] dtime=[] for i in range(len(y)): time_format = datetime.datetime.fromtimestamp(1667663400+i*86400) dtime.append(str(time_format)[:]) plt.figure(figsize=(15,8)) plt.xlabel('Time',fontsize=20, rotation=0, ha='right', va='top',labelpad=15) plt.ylabel('Cost',fontsize=20, rotation=90, ha='center', va='bottom',labelpad=50) x_major_locator = MultipleLocator(len(dtime) // 5) ax = plt.gca() ax.xaxis.set_major_locator(x_major_locator) # xindex=[2,6,8] # plt.xticks(xindex, [dtime[m] for m in xindex]) plt.xlim(0,len(dtime)) plt.ylim(0,max(y)) plt.axhline(linewidth=5, color='black') # X 轴线条粗细 plt.axvline(linewidth=5, color='black') # Y 轴线条粗细 plt.plot(dtime,y) plt.show()

在这里插入图片描述 二是不动原点,直接加深figure边轴

import matplotlib.pyplot as plt import datetime from matplotlib.ticker import MultipleLocator y=[1,6,5,2,7,1,4,3,6,2] x=[m for m in range(len(y))] dtime=[] for i in range(len(y)): time_format = datetime.datetime.fromtimestamp(1667663400+i*86400) dtime.append(str(time_format)[:]) plt.figure(figsize=(15,8)) plt.xlabel('Time',fontsize=20, rotation=0, ha='right', va='top',labelpad=15) plt.ylabel('Cost',fontsize=20, rotation=90, ha='center', va='bottom',labelpad=50) x_major_locator = MultipleLocator(len(dtime) // 5) ax = plt.gca() ax.xaxis.set_major_locator(x_major_locator) # xindex=[2,6,8] # plt.xticks(xindex, [dtime[m] for m in xindex]) # plt.xlim(0,len(dtime)) # plt.ylim(0,max(y)) # plt.axhline(linewidth=5, color='black') # X 轴线条粗细 # plt.axvline(linewidth=5, color='black') # Y 轴线条粗细 left_spine = plt.gca().spines['left']# 获取左边轴对象 left_spine.set_linewidth(5)# 设置线条粗细 left_spine = plt.gca().spines['bottom'] left_spine.set_linewidth(5) plt.plot(dtime,y) plt.show()

在这里插入图片描述 从这里也可以得到把边轴隐藏掉的一个方法,直接设置其线条粗细为0就好:

left_spine = plt.gca().spines['top'] left_spine.set_linewidth(0) left_spine = plt.gca().spines['right'] left_spine.set_linewidth(0)

在这里插入图片描述

折线线条的粗细调整

plot的时候用linewidth参数调整一下就好

plt.plot(dtime,y,linewidth=5)

在这里插入图片描述

总代码 import matplotlib.pyplot as plt import datetime from matplotlib.ticker import MultipleLocator y=[1,6,5,2,7,1,4,3,6,2] x=[m for m in range(len(y))] dtime=[] for i in range(len(y)): time_format = datetime.datetime.fromtimestamp(1667663400+i*86400) dtime.append(str(time_format)[:]) plt.figure(figsize=(15,8)) plt.xlabel('Time',fontsize=20, rotation=0, ha='right', va='top',labelpad=15) plt.ylabel('Cost',fontsize=20, rotation=90, ha='center', va='bottom',labelpad=50) x_major_locator = MultipleLocator(len(dtime) // 5) ax = plt.gca() ax.xaxis.set_major_locator(x_major_locator) # xindex=[2,6,8] # plt.xticks(xindex, [dtime[m] for m in xindex]) # plt.xlim(0,len(dtime)) # plt.ylim(0,max(y)) # plt.axhline(linewidth=5, color='black') # X 轴线条粗细 # plt.axvline(linewidth=5, color='black') # Y 轴线条粗细 left_spine = plt.gca().spines['left']# 获取左边轴对象 left_spine.set_linewidth(5)# 设置线条粗细 left_spine = plt.gca().spines['bottom'] left_spine.set_linewidth(5) left_spine = plt.gca().spines['top'] left_spine.set_linewidth(0) left_spine = plt.gca().spines['right'] left_spine.set_linewidth(0) plt.plot(dtime,y,linewidth=5) # plt.show() plt.savefig('E:/CSDN/案例.png')

注意一个点,figsize的大小如果超出show的显示大小限制,会看不出来实际大小,只会铺满全屏,所以用savefig存一下才能看出你实际调整的效果,用dpi参数可以调整分辨率,不过太大了也不好,得放大了才看得清楚。 待补充。。。



【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭