matplotlib基本设置

目录

一.绘画框的设置

1.0 figure()

二.X轴和Y轴的设置 

1.0 设置x轴和y轴的步长

2.0设置x轴和y轴的表示信息

三.显示中文

方法一

方法二 

四.添加描述信息

1.0 添加表格

 2.0添加标题

3.0 #添加图例

 4.0 添加水印


代码:

import matplotlib
import matplotlib.pyplot as plt
from matplotlib import font_manager
import numpy as np
import random


#数据
x = [i+1 for i in range(12)]
y_2020 = [random.randint(20,36) for i in range(12)]
y_2021 = [random.randint(20,36) for i in range(12)]
y_2022 = [random.randint(20,36) for i in range(12)]
x_ = ["{}月".format(i+1) for i in range(12)]

#显示中文字体
font = {
    'style' : "italic" ,
    'variant':"small-caps" ,
    'weight' : "50",
    'stretch': "extra-condensed",
    'size' : "20.0",
    'fname' :"C:\Windows\Fonts\simfang.ttf" ,
}


my_font = font_manager.FontProperties("font",**font)


#设置绘图窗口大小,背景颜色,框颜色等
plt.figure(num="123",figsize=(15,8),dpi=100,facecolor="Green",edgecolor="red",linewidth=20,frameon=True) 


#设置x轴和y轴的步长
plt.xticks(x,x_,rotation=30,fontproperties=my_font) #rotation=90 旋转90度
plt.yticks(np.arange(20,37,1))

#设置x轴和y轴的表示信息
# plt.xlabel("月份",size=120,color="red")
plt.xlabel("月份",fontproperties=my_font,color="blue")
plt.ylabel("销售额",fontproperties=my_font)

#设置标题
plt.title("2020-2022年销售额",fontproperties=my_font)

#绘制网格
plt.grid(alpha=2,which='both', axis='both',color="red",linestyle="-.",linewidth=1.0) 



#绘制折线图
plt.plot(x,y_2020,label="2020年",color="#008B45",linestyle="-",linewidth=3,alpha=10) 
plt.plot(x,y_2021,label="2021年",color="Black",linestyle="--",linewidth=3) 
plt.plot(x,y_2022,label="2022年",color="#6495ED",linestyle="--",linewidth=3) 

#添加图例 得添加在plt.plot()后
plt.legend(prop=my_font,loc=1)

#添加水印
plt.text(x=8,                # 水印开头左下角对应的X点
         y=20,               # 水印开头左下角对应的Y点
         s="Matplotlib",    # 水印文本
         fontsize=50,       # 水印大小
         color="blue",      # 水印颜色
         alpha=0.5)         # 水印是通过透明度控制的


#保存图片
plt.savefig(r"C:\Users\江居正\Pictures\Saved Pictures\12.png")
plt.show()

效果如下:

matplotlib基本设置_第1张图片

 

具体解析:

 

一.绘画框的设置

1.0 figure()

figure(num=None,  # autoincrement if None, else integer from 1-N
           figsize=None,  # defaults to rc figure.figsize
           dpi=None,  # defaults to rc figure.dpi
           facecolor=None,  # defaults to rc figure.facecolor
           edgecolor=None,  # defaults to rc figure.edgecolor
           frameon=True,
           FigureClass=Figure,
           clear=False,
           **kwargs
           )

 

figure参数
参数 解释
num

图形的唯一标识符。

如果具有该标识符的图形已经存在,则将该图形激活并返回。整数表示Figure.number 属性,字符串表示图形标签。

如果没有带有标识符的数字或未提供num,则将创建一个新数字,将其激活并返回。如果num是一个int,它将用于Figure.number属性,否则,将使用自动生成的整数值(从1开始,对于每个新数字递增)。如果num是字符串,则将图形标签和窗口标题设置为此值。

int或str
figsize 窗口的大小,单位为英寸

二元元组 (float,float)

默认值为:(6.4, 4.8)即长6.4英寸,宽4.8英寸

dpi 所绘制的图像的分辨率,以每英寸点数为单位。

float

默认值为100.0

facecolor 背景颜色

默认:'white'

RGB颜色对照表

edgecolor 边框颜色
linewidth 边框宽度 float
frameon 是否绘制边框

bool

默认值:True

如果为False,则禁止绘制图形框。

subplotpars 未知  
tight_layout 未知  
constrained_layout 未知  
     
     
     
     

 

import matplotlib.pyplot as plt
import numpy as np

x = np.arange(0, 50, 0.1)
y = np.sin(x)
plt.figure(num="123",figsize=(20,8),dpi=100,facecolor="Green",edgecolor="red",linewidth=20,frameon=True,) #设置图片的大小
plt.plot(x,y)
plt.savefig(r"C:\Users\jiang\Pictures\Saved Pictures\123.svg") #保存图片格式png,svg(矢量图格式,放大不失帧
plt.show()

 frameon=Ture,图如下:

 

matplotlib基本设置_第2张图片

frameon=False,图如下:

matplotlib基本设置_第3张图片

二.X轴和Y轴的设置 

1.0 设置x轴和y轴的步长

# X轴
xticks(ticks=None, labels=None, **kwargs)

# Y轴
yticks(ticks=None, labels=None, **kwargs)

 

官方示例:
locs, labels = xticks()  # Get the current locations and labels.
xticks(np.arange(0, 1, step=0.2))  # Set label locations.
xticks(np.arange(3), ['Tom', 'Dick', 'Sue'])  # Set text labels.
xticks([0, 1, 2], ['January', 'February', 'March'],rotation=20)  # Set text labels and properties.
x = [1,2,3]
y = [random.randint(20,36) for i in range(3)]
plt.figure(figsize=(20,10),dpi=200)
plt.xticks(x,["aa","y","z"],rotation=90) #设置x轴 rotation=90 旋转90度
plt.yticks(np.arange(20,37,1)) #设置y轴
plt.plot(x,y)
plt.show()

 

matplotlib基本设置_第4张图片

2.0设置x轴和y轴的表示信息

#设置x轴和y轴的表示信息
plt.xlabel("月份")
plt.ylabel("销售额")

# plt.xlabel("月份",size=120,color="red")
plt.xlabel("月份",fontproperties=my_font,color="blue")
plt.ylabel("销售额",fontproperties=my_font) 

matplotlib基本设置_第5张图片

三.显示中文

方法一

import matplotlib

font = {'family':'Microsoft yahei',
        'weight':'bold',
        'size':10.5}
matplotlib.rc("font",**font)

 

参数
family

字体类型

 

查看当前电脑支持的字体方法:

linux/mac 在命令提示符输入 fc-list 或 fc-list :lang=zh window在目录C:\Windows\Fonts

weight

字体粗细

float

str   normal/bold

size

字体大小

float

 

方法二 

from matplotlib import font_manager


font = {
    'style' : "italic" ,
    'variant':"small-caps" ,
    'weight' : "50",
    'stretch': "extra-condensed",
    'size' : "20",
    'fname' :"C:\Windows\Fonts\simfang.ttf" ,
}
my_font = font_manager.FontProperties("font",**font)

font = {
    'family':["serif"],
    'style' : "italic" ,
    'variant':"small-caps" ,
    'weight' : "regular",
    'stretch': "extra-condensed",
    'size' : "large",
    'fname' :"C:\Windows\Fonts\simfang.ttf" ,

参数 描述
family 未知
'serif', 'sans-serif', 'cursive', 'fantasy', or 'monospace'.
style 字体风格
'normal', 'italic' or 'oblique'
variant 变形方式
'normal' or 'small-caps'
weight 字体的粗细
float 1~1000
或
'ultralight', 'light', 'normal',  'regular',
'book','medium','roman', 'semibold','demibold', 'demi',
 'bold', 'heavy','extra bold', 'black'.
stretch 拉伸方式

float 1~1000

'ultra-condensed', 'extra-condensed', 'condensed',
'semi-condensed', 'normal', 'semi-expanded', 'expanded',
'extra-expanded' or 'ultra-expanded'.
size 字体大小
flaot
或
'xx-small', 'x-small','small', 'medium', 
'large', 'x-large', 'xx-large'
fname 系统支持的字体的路径  

 

import matplotlib
import matplotlib.pyplot as plt
from matplotlib import font_manager
import numpy as np
import random


font = {
    'style' : "italic" ,
    'variant':"small-caps" ,
    'weight' : "50",
    'stretch': "extra-condensed",
    'size' : "20.0",
    'fname' :"C:\Windows\Fonts\simfang.ttf" ,
}
my_font = font_manager.FontProperties("font",**font)

x = [1,2,3]
y = [random.randint(20,36) for i in range(3)]
plt.figure(figsize=(20,10),dpi=200)
locs, labels=plt.xticks(x,["一月","二月","三月"],rotation=90,fontproperties=my_font) #rotation=90 旋转90度
plt.yticks(np.arange(20,37,1))
plt.plot(x,y)
plt.show()

matplotlib基本设置_第6张图片

 

四.添加描述信息

1.0 添加表格

grid(alpha, which, axis, color, linestyle, linewidth, **kwargs)

参数 描述
alpha 表格的透明度 float
which   'major', 'minor', 'both'。 默认为'major'
axis 绘制表格的方向

both:

x:绘制横向表格

y:绘制竖向表格

color 表格颜色  
linestyle 表格风格

-

--

-.

linewidth 表格线的宽度  
 **kwargs    
font = {
    'style' : "italic" ,
    'variant':"small-caps" ,
    'weight' : "50",
    'stretch': "extra-condensed",
    'size' : "20.0",
    'fname' :"C:\Windows\Fonts\simfang.ttf" ,
}
my_font = font_manager.FontProperties("font",**font)

x = [i+1 for i in range(12)]
y = [random.randint(20,36) for i in range(12)]
plt.figure(figsize=(20,10),dpi=200)
x_ = ["{}月".format(i+1) for i in range(12)]
plt.xticks(x,x_,rotation=30,fontproperties=my_font) #rotation=90 旋转90度
plt.yticks(np.arange(20,37,1))

##绘制网格
plt.grid(alpha=2,which='both', axis='both',color="red",linestyle="-.",linewidth=1.0) 


plt.plot(x,y) 
plt.show()

 

matplotlib基本设置_第7张图片

 

 2.0添加标题

plt.title("2020年销售额")

plt.title("2020年销售额",fontproperties=my_font)

matplotlib基本设置_第8张图片

3.0 #添加图例

plt.legend(prop=my_font,loc=1)

注:①得添加在plt.plot()后 否则会报错  No handles with labels found to put in legend.②唯一一个设置显示中文用prop,其他都用fontproperties

图例的位置
loc参数 简写
base 0 默认值
upper right 1
upper left 2
lower left 3
lower right 4
right 5
center left 6
center right 7
lower center 8
upper  center 9
center 10


 

matplotlib基本设置_第9张图片

 4.0 添加水印

#添加水印
plt.text(x=8,                # 水印开头左下角对应的X点
         y=20,               # 水印开头左下角对应的Y点
         s="Matplotlib",    # 水印文本
         fontsize=50,       # 水印大小
         color="blue",      # 水印颜色
         alpha=0.5)         # 水印是通过透明度控制的

matplotlib基本设置_第10张图片

 

你可能感兴趣的:(matplotlib)