听莫凡 matplotlib笔记1
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(-3,3,50)
y1 = 2*x+1
y2 = x**2
#plt.figure(num=3,figsize=(6,3))
#plt.plot(x,y1)
plt.figure()
##plt.plot(x,y2)
##plt.plot(x,y1,color="red",linewidth=1.0,linestyle="--")
plt.xlim((-1,2))
plt.ylim((-2,3))
plt.xlabel("I am x")
plt.ylabel("I am y")
new_ticks = np.linspace(-1,2,5)#从-1到2共五个点
print(new_ticks)
plt.xticks(new_ticks)
plt.yticks([-2,-1.8,-1,1.22,3],
[r"$really\ bad$",r"$bad\ \alpha$",r"$normal$",r"$good$",r"$really\ good$"])#r代表正则化,¥代表统一字体格式,加\才能显示空格,
#以及把数学符号显示出来。
#第六节课gca = "get current axis"移动坐标轴,spines代表图的边框。
##ax = plt.gca()
##ax.spines["right"].set_color("none")#取消右边框
##ax.spines["top"].set_color("none")
##ax.xaxis.set_ticks_position("bottom")#x轴设置为下边框
##ax.yaxis.set_ticks_position("left")
##ax.spines["bottom"].set_position(("data",-1))#-1是y轴的,(方法有outward,axes)目前用的axes.
##ax.spines["left"].set_position(("data",0))#0是x轴的
#第七节课加图例
l1,= plt.plot(x,y2,label="up")
l2,= plt.plot(x,y1,color="red",linewidth=1.0,linestyle="--",label="down")
plt.legend(handles=[l1,l2],labels=["aaa","bbb"],loc="best")#图例loc代表位置,handles代表传入值加逗号,labels给线命名。
#如果只想要一个图例把l2,bbb删了即可.
plt.show()
#第八节课,标注线上的点
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(-3,3,50)
y1 = 2*x+1
plt.figure(num=1,figsize=(8,5))
plt.plot(x,y1)
ax = plt.gca()
ax.spines["right"].set_color("none")#取消右边框
ax.spines["top"].set_color("none")
ax.xaxis.set_ticks_position("bottom")#x轴设置为下边框
ax.yaxis.set_ticks_position("left")
ax.spines["bottom"].set_position(("data",0))#0是y轴的
ax.spines["left"].set_position(("data",0))#0是x轴的
x0 = 1
y0 = 2*x0 + 1
plt.scatter(x0,y0,s=50,color="b")#scatter的作用是把线变成点。s代表大小,
plt.plot([x0,x0],[y0,0],"k--",lw=2.5)#k代表黑色,lw代表线宽
#method 1
plt.annotate(r"$2x+1=%s$" % y0,xy=(x0,y0),xycoords="data",xytext=(+30,-30),textcoords="offset points",
fontsize=16,arrowprops=dict(arrowstyle="->",connectionstyle="arc3,rad=0.2"))
# 可以r"$2x+1=3$" % y0,也可以传进去字符串(s),其值为y0:(r"$2x+1=%s$" % y0)也代表名,xy=(x0,y0)代表坐标从哪里开始,
#xy=(x0,y0)以它xycoords="data"的值为基准,xytext=(+30,-30),textcoords="offset points",表示文本的位置基于初始位置,横坐标加30,纵坐标减30。
# fontsize=16,字体大小,arrowprops=dict(arrowstyle="->"箭头,connectionstyle="arc3代表等级,rad弧度=0.2"))
#method 2
plt.text(-3.7,3,r"$This\ is\ the\ some\ text.\ \mu\ \sigma_i\ \alpha_t$",
fontdict={"size":16,"color":"r"})
#-3.7,3代表文本起始坐标位置,size":16字体大小。
plt.show()
#第九节课,标注线上的点
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(-3,3,50)
y = 0.1*x
plt.figure()
plt.plot(x,y,linewidth=10,zorder=1)#zorder设置图片层级,1为最低层。
plt.ylim(-2,2)
ax = plt.gca()
ax.spines["right"].set_color("none")#取消右边框
ax.spines["top"].set_color("none")
ax.xaxis.set_ticks_position("bottom")#x轴设置为下边框
ax.yaxis.set_ticks_position("left")
ax.spines["bottom"].set_position(("data",0))#0是y轴的
ax.spines["left"].set_position(("data",0))#0是x轴的
for label in ax.get_xticklabels()+ax.get_yticklabels(): #获取坐标轴,设置其参数
label.set_fontsize(12)#使其变大
#label.set_zorder(2)
label.set_bbox(dict(facecolor="white",edgecolor="None",alpha=0.7))
#alpha=70透明度,facecolor="white"使目标值变成背景色,edgecolor="None"把长方形黑边去点。
plt.show()
#第10节课
import numpy as np
import matplotlib.pyplot as plt
n = 1024
X = np.random.normal(0,1,n)#平均值0,方差1.
Y = np.random.normal(0,1,n)
T = np.arctan2(Y,X)#for color value
plt.scatter(X,Y,s=75,c=T,alpha=0.5)
#s是面积,c是颜色,alpha=0.5通明度。
plt.xlim(-1.5,1.5)
plt.ylim(-1.5,1.5)
##plt.xticks(())#去掉x坐标轴
##plt.yticks(())
#plt.scatter(np.arange(5),np.arange(5))#另一种图
plt.show()

浙公网安备 33010602011771号