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, # X轴数据
y_2020, # Y轴数据
label="2020年", #折线的标签名称
ls="-", # 线条样式
lw=2, # 线条宽度
marker="o", # X轴Y轴对应数据点的样式
ms=20, # 数据点的大小
mfc="orange", # 数据点填充颜色
alpha=0.6) # 数据点的透明度
plt.plot(x, # X轴数据
y_2021, # Y轴数据
label="2021年", #折线的标签名称
ls="--", # 线条样式
lw=2, # 线条宽度
marker="o", # X轴Y轴对应数据点的样式
ms=20, # 数据点的大小
mfc="#008B45", # 数据点填充颜色
alpha=0.6) # 数据点的透明度
plt.plot(x, # X轴数据
y_2022, # Y轴数据
label="2021年", #折线的标签名称
ls="-.", # 线条样式
lw=2, # 线条宽度
marker="o", # X轴Y轴对应数据点的样式
ms=20, # 数据点的大小
mfc="#6495ED", # 数据点填充颜色
alpha=0.6) # 数据点的透明度
# 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\jinag\Pictures\Saved Pictures\12.png")
plt.show()
plt.plot(
x, # X轴数据
y_2021, # Y轴数据
label="2020年", #折线的标签名称
ls="-", # 线条样式 - -. --
lw=2, # 线条宽度
marker="o", # X轴Y轴对应数据点的样式
ms=20, # 数据点的大小
mfc="orange", # 数据点填充颜色
alpha=0.6) # 数据点的透明度
具体解析
'markers': {'.': 'point', ',': 'pixel', 'o': 'circle', 'v': 'triangle_down', '^': 'triangle_up', '<': 'triangle_left', '>': 'triangle_right', '1': 'tri_down', '2': 'tri_up', '3': 'tri_left', '4': 'tri_right', '8': 'octagon', 's': 'square', 'p': 'pentagon', '*': 'star', 'h': 'hexagon1', 'H': 'hexagon2', '+': 'plus', 'x': 'x', 'D': 'diamond', 'd': 'thin_diamond', '|': 'vline', '_': 'hline', 'P': 'plus_filled', 'X': 'x_filled', 0: 'tickleft', 1: 'tickright', 2: 'tickup', 3: 'tickdown', 4: 'caretleft', 5: 'caretright', 6: 'caretup', 7: 'caretdown', 8: 'caretleftbase', 9: 'caretrightbase', 10: 'caretupbase', 11: 'caretdownbase', 'None': 'nothing', None: 'nothing', ' ': 'nothing', '': 'nothing'},
参数 | 解析(全称) |
---|---|
. | point |
, | pixel |
o | circle |
v | triangle_down |
^ | triangle_up |
< | triangle_left' |
> | triangle_right |
'1' | tri_down |
'2' | tri_up |
'3' | tri_left |
'4' | tri_right |
'8' | octagon |
s | square |
p | pentagon |
* | star |
h | hexagon1 |
H | hexagon2 |
+ | plus |
x | x |
D | diamond |
d | thin_diamond |
| | vline |
_ | hline |
P | plus_filled |
X | x_filled |
0 | tickleft |
1 | tickright |
2 | tickup |
3 | tickdown |
4 | caretleft |
5 | caretright |
6 | caretup |
7 | caretdown |
8 | caretleftbase |
9 | caretrightbase |
10 | caretupbase |
11 | caretdownbase |
None | nothing |
'None' | nothing |
'' | nothing |
' ' | nothing |