import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
#%matplotlib online #如果不显示图,执行此代码
plt.rcParams["font.sans-serif"]="SimHei" #显示中文
plt.rcParams["axes.unicode_minus"] = False #让图片显示符号
#legend()
plt.figure(figsize = (6,4))
x = np.linspace(1,2*np.pi)
plt.plot(x,np.sin(x))
plt.plot(x,np.cos(x))
#图例,如果没有下边的label 运行完plt.legend不报错也不显示图例,现在需要把label写在legend里了
plt.legend(["sin","cos"],fontsize = 18,loc = "best",ncol =2,bbox_to_anchor = [0,0,1,1]
# fontsize: 字体大小
# loc :
# best 0
# upper right 1
# upper left 2
# lower left 3
# lower right 4
# right 5
# center left 6
# center right7
# lower center8
# upper center9
# center 10
# ncol:显示出几列
# bbox_to_anchor:图例具体位置(x,y,width,height)
线条属性
#线条属性
color 颜色
linestyle 样式
linewidth 宽度
alpha 透明度
marker 标记
label 标签
mfc:marker face color 标记的背景颜色
markeredgecolor 标记的边缘颜色
markeredgewidth 标记的边缘宽度
plt.figure(figsize = (6,4))
x = np.linspace(0,2*np.pi,20)
y1 = np.sin(x)
y2 = np.cos(x)
plt.plot(x,y1,c= "r",marker = "o",ls = "-.",alpha = 0.5,lw = 1,mfc = "y",markersize = 10,markeredgecolor = "g")
plt.plot(x,y2,c= "g",marker = "p",ls = "--",alpha = 0.5,lw = 1,mfc = "b",markersize = 10,markeredgewidth = 3)
plt.legend(["sin","cos"])
坐标轴属性
# xticks()
# yticks()
plt.figure(figsize = (6,4))
x = np.linspace(0,10)
y =np.sin(x)
plt.plot(x,y)
#ha labels的对齐方式
plt.xticks(np.arange(0,11,1),fontsize = 14,c = "c")
plt.yticks([-1,0,1],labels = ["min","0","max"],ha = "left")
plt.show()
坐标轴范围
# xlim
# ylim
plt.figure(figsize = (6,4))
x = np.linspace(0,2*np.pi,20)
y = np.sin(x)
plt.plot(x,y,c = "r")
#方法一
plt.xlim(-1,8)
plt.ylim(-2,2)
#方法二
plt.axis([-2,8,-2,2])
标题和网格线
plt.figure(figsize = (6,4))
x = np.linspace(0,2*np.pi,20)
y = np.sin(x)
plt.plot(x,y,c = "g")
#标题
plt.title("sin 曲线",fontsize = 20,loc = "center")
#父标题
plt.suptitle("父标题",
y = 1.1#位置
,fontsize = 25
)
#grid网格线
plt.grid(ls = "--",lw = 0.5,c= "gray",axis = "y")
坐标轴标签
xlabel() ylabel()
plt.figure(figsize = (6,4))
x = np.linspace(0,2*np.pi,20)
y = np.sin(x)
plt.plot(x,y,c = "g")
plt.xlabel("x ",fontsize = 12,rotation = 45)#旋转45度
plt.ylabel("sin(x) ",fontsize = 12)#旋转45度
plt.figure(figsize = (6,4))
x = np.linspace(1,10,10)
y = np.array([50,20,48,90,200,400,299,49,50,10])
plt.plot(x,y,c = "g",ls = "--",marker = "o")
#画文字
for a,b in zip(x,y):
plt.text(x=a+0.3,y =b+20,s = b,
ha = "right"#对齐方式
,va = "center"#垂直方式
)
#文本 text()
plt.figure(figsize = (6,4))
x = np.linspace(1,10,10)
y = np.array([50,20,48,90,200,400,299,49,50,10])
plt.plot(x,y,c = "g",ls = "--",marker = "o")
#画文字
for a,b in zip(x,y):
plt.text(x=a+0.3,y =b+20,s = b,
ha = "right"#对齐方式
,va = "center"#垂直方式
)
注释
annotate()
fig = plt.figure(figsize = (6,4))
x = np.linspace(1,10,10)
y = np.array([50,20,48,90,200,400,299,49,50,10])
plt.plot(x,y,c = "g",ls = "--",marker = "o")
plt.annotate(
text = "最高销量",#标注内容
xy=(5,400),#标注的坐标点:箭头指向的位置
xytext=(3,340),#标注内容的位置
arrowprops={
"width" :2,#箭头宽度
"headwidth":8,
"facecolor":"c"
}
)
## 图片保存方法一
plt.savefig("sincos.png")
## 图片保存方法二
fig.savefig(fname = "sincos2.png",
dpi = 100,
facecolor = "c",
pad_inches = 1# 内边距
)