目录

  • 1.基本介绍
  • 2.设置坐标轴
  • 3.绘制图例
  • 4.在图中添加注释
  • 5.画散点图
  • 6.画柱状图


1.基本介绍

import numpy as np
import matplotlib.pyplot as plt

np.linspace()用于生成等差数列

x= np.linspace(-3,3,50)   #生成从-3到3共50个等差的数

y1 = 2*x+1
y2 = x**2
plt.figure()
plt.plot(x,y1)   #线条的设置为默认值
plt.plot(x,y2,color='red',linewidth=2.0,linestyle='--')

plt.plot(x,y2,color=‘red’,linewidth=2.0,linestyle=’–’)可以在plot()里添加所画线条的描述:y2的颜色是红色,线宽为2.0,线条样式为’–’.

#设置坐标轴范围
plt.xlim((-1,2))
plt.ylim((-2,5))

#设置坐标轴标签
plt.xlabel('x')
plt.ylabel('y')

运行结果:

python plot 连线 matplotlib连线_python plot 连线

2.设置坐标轴

上述代码里已经对坐标轴设置了范围,并加了标签。基于上述代码,下面将对坐标轴做进一步的设置。

import numpy as np
import matplotlib.pyplot as plt

x= np.linspace(-3,3,50)
y1 = 2*x+1
y2 = x**2
plt.figure()
plt.plot(x,y1)
plt.plot(x,y2,color='red',linewidth=2.0,linestyle='--')

plt.xlim((-1,2))
plt.xlabel('x')
plt.ylim((-2,5))
plt.ylabel('y')

重新设置坐标轴单位和精度:
new_x = np.linspace(-1,2,5) x轴的范围变成了(-1,2),中间共有5个标签:[-1 -0.25 -0.5 1.25 2]

new_x = np.linspace(-1,2,5)   #生成等差数列
print(new_x)                  #[-1 -0.25 -0.5 1.25 2]
plt.xticks(new_x)

#给坐标轴上添加标签
plt.yticks([-2,1,3],[r'$wx$',r'$really\ bad$',r'$w\ \alpha$'])

上述代码表示在y轴的-2处加标签‘wx’…
’ $ … $ ':设置字体
空格的表示要加反斜杠’|‘
’|alpha’表示数学符号:α

#去掉图中的上、右边界线
ax= plt.gca() 
ax.spines['right'].set_color('none')  
ax.spines['top'].set_color('none')

gac = ‘get current axis’:获取目前的坐标轴

#改变坐标轴的方式
ax.xaxis.set_ticks_position('bottom') #用下面的坐标轴作为x轴
ax.spines['bottom'].set_position(('data',-1))   #横坐标的起始位置是Y轴的-2

ax.yaxis.set_ticks_position('left') #用下面的坐标轴作为y轴
ax.spines['left'].set_position(('data',0.5))  #纵坐标的起始位置是x轴的0.5

plt.show()

运行结果:

python plot 连线 matplotlib连线_python_02

3.绘制图例

运行代码如下:

import numpy as np
import matplotlib.pyplot as plt

#绘制sin函数曲线
x = np.arange(-2, 6, 0.1)
y1 = np.sin(x)
y2 = 2*x+1
l1,= plt.plot(x, y1,color="g")
l2,= plt.plot(x, y2,color="b")
plt.xlim((-2,6))
plt.ylim((-2,5))

#省略有规则递增的x2参数
y3 = [-2,-1,-0.5,0, 0.5, 1.5, 2.4, 4.6, 8]
plt.plot(y3, color="r")
'''handles:操作的对象;labels:给对象加标签;loc:图例的位置(upper center/upper left) ;shadow:设置阴影'''
plt.legend(handles=[l1,l2,] ,labels = ['sin','ones'],loc='best',shadow = True)
plt.show()

运行结果:

python plot 连线 matplotlib连线_坐标轴_03

4.在图中添加注释

运行代码如下:

import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(-3,3,50)    #范围:-3到3,中间共有50个数
# x1 = np.arange(-3, 3, 0.1)#范围:-3到3,每隔0.1取一个数
y = 2*x+1

plt.figure(num=2,figsize=(7,5))   #num:图的序号;figsize:图的大小
plt.plot(x,y)
# plt.scatter(x,y)

ax= plt.gca()
ax.spines['right'].set_color('none')
ax.spines['top'].set_color('none')

ax.xaxis.set_ticks_position('bottom') #用下面的坐标轴作为x轴
ax.spines['bottom'].set_position(('data',0))   #起始位置是Y轴的0
ax.yaxis.set_ticks_position('left') #用左边的坐标轴作为y轴
ax.spines['left'].set_position(('data',0))   #起始位置是x轴的0

x0 = 1
y0 = 2*x0+1
plt.scatter(x0,y0,s=50,color='b')      #s:size
plt.plot([x0,x0],[y0,0],'k--',lw=2.5)  #lw:longwide:线宽

#法一:
x0 = 1
y0 = 2*x0 + 1
plt.plot([x0,x0],[0,y0],'k--',linewidth = 2.5)
plt.scatter([x0,x0],[y0,y0],s = 50,color='b')
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=.2"))

#法二  在坐标轴(-3.7,4)为起始点
plt.text(-3.7,4,r'$This\ is\ the\ classion\ of\ coal\ gangue$',
         fontdict={'size':16,'color':'r'})

plt.show()

运行结果如下:

python plot 连线 matplotlib连线_图例_04

5.画散点图

import numpy as np
import matplotlib.pyplot as plt

n=1024   #在x y轴分别生成1024个数
X = np.random.normal(0,1,n)
Y = np.random.normal(0,1,n) #生成u=0,方差为1024个数的正太分布
T = np.arctan2(Y,X)     #定义颜色

#生成散点图
plt.scatter(X,Y,s=75,c=T,alpha=0.5)

#设置坐标轴的范围
plt.xlim((-1.5,1.5))
plt.ylim((-1.5,1.5))

#隐藏坐标轴旁的标识
plt.xticks(())
plt.yticks(())
plt.show()

运行结果如下:

python plot 连线 matplotlib连线_图例_05

6.画柱状图

运作代码如下:

import numpy as np
import matplotlib.pyplot as plt

n=1024   #在x y轴分别生成1024个数
X = np.random.normal(0,1,n)
Y = np.random.normal(0,1,n) #生成u=0,方差为1024个数的正太分布
T = np.arctan2(Y,X)     #定义颜色

#生成散点图
plt.scatter(X,Y,s=75,c=T,alpha=0.5)

#设置坐标轴的范围
plt.xlim((-1.5,1.5))
plt.ylim((-1.5,1.5))

#隐藏坐标轴旁的标识
plt.xticks(())
plt.yticks(())
plt.show()

运行结果如下:

python plot 连线 matplotlib连线_python_06


本文章参考B站上的视频《莫烦Python》

(by dzx 2020 03 27 16:37)