目录
一.绘画框的设置
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()
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
)
参数 | 解释 | 值 |
---|---|---|
num | 图形的唯一标识符。 如果具有该标识符的图形已经存在,则将该图形激活并返回。整数表示 如果没有带有标识符的数字或未提供num,则将创建一个新数字,将其激活并返回。如果num是一个int,它将用于 |
int或str |
figsize | 窗口的大小,单位为英寸 | 二元元组 (float,float) 默认值为:( |
dpi | 所绘制的图像的分辨率,以每英寸点数为单位。 | float 默认值为100.0 |
facecolor | 背景颜色 | 默认: |
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()
# 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()
#设置x轴和y轴的表示信息
plt.xlabel("月份")
plt.ylabel("销售额")
# plt.xlabel("月份",size=120,color="red")
plt.xlabel("月份",fontproperties=my_font,color="blue")
plt.ylabel("销售额",fontproperties=my_font)
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 | 未知 | |
style | 字体风格 | |
variant | 变形方式 | |
weight | 字体的粗细 | |
stretch | 拉伸方式 | float 1~1000 或 |
size | 字体大小 | |
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()
参数 | 描述 | 值 |
---|---|---|
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()
plt.title("2020年销售额")
plt.title("2020年销售额",fontproperties=my_font)
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 |
#添加水印
plt.text(x=8, # 水印开头左下角对应的X点
y=20, # 水印开头左下角对应的Y点
s="Matplotlib", # 水印文本
fontsize=50, # 水印大小
color="blue", # 水印颜色
alpha=0.5) # 水印是通过透明度控制的