python中使用matplotlib绘制图表

Pyplot 是 Matplotlib 的子库,提供了和 MATLAB 类似的绘图 API

import matplotlib.pyplot as plt
fig = plt.figure()
ax = fig.add_subplot(111)
ax.set(xlim=[0.5, 4.5], ylim=[-2, 8], title='An Example Axes',ylabel='Y-Axis',xlabel='X-Axis')
plt.show()

线形图 

 matplotlib提供plot()函数绘制一系列点 ,用线将其连起来。

import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(0,np.pi)
y_sin = np.sin(x)
y_cos = np.cos(x)

fig = plt.figure()
# add_subplot(221)前面两个参数确定了面板的划分,第三个参数确定表示第几个Axis
ax1 = fig.add_subplot(221)
ax2 = fig.add_subplot(222)
ax3 = fig.add_subplot(224)

ax1.plot(x,y_sin)
ax2.plot(x,y_sin,'go--',linewidth=2,markersize=12)
ax3.plot(x,y_cos,color='red',marker='+',linestyle='dashed')  # 颜色,标记,线形
plt.show()

 plot()函数用法

格式:plt.plot(x, y, ls=‘-’, lw=2, label=‘xxx’, color=‘g’ )

x: x轴上的值
y: y轴上的值
ls:线条风格 (linestyle)
lw:线条宽度 (linewidth)
label:标签文本
注意: 对于线条颜色,必须写上color=‘red’,而不是只写color=‘’,不然会报错SyntaxError: positional argument follows keyword argument,意思是参数位置不正确导致的错误,也就是说 color=''没有默认的颜色
 

散点图

散点图用于表示多个变量的相关性。 Matplotlib提供scatter()函数绘制散点图。

random.rand():这个函数的参数是数组的维度,取值范围是 [0,1)

import matplotlib.pyplot as plt
import numpy as np
N = 50
plt.scatter(np.random.rand(N)*50,np.random.rand(N)*50,c='r',s=50,alpha=0.5)
plt.scatter(np.random.rand(N)*50,np.random.rand(N)*50,c='g',s=50,alpha=0.5)
plt.scatter(np.random.rand(N)*50,np.random.rand(N)*50,c='b',s=50,alpha=0.5)
plt.show()

scatter()函数用法 
 

matplotlib.pyplot.scatter(x, 
	y, 
	s=20, 
	c='b', 
	marker='o', 
	cmap=None, 
	norm=None, 
	vmin=None, 
	vmax=None, 
	alpha=None, 
	linewidths=None, 
	verts=None, 
	hold=None, 
	**kwargs)

x,y:表示的是shape大小为(n,)的数组,也就是我们即将绘制散点图的数据点,输入数据。

s:表示的是大小,是一个标量或者是一个shape大小为(n,)的数组,可选,默认20。

c:表示的是色彩或颜色序列,可选,默认蓝色’b’。但是 c不应该是一个单一的RGB数字,也不应该是一个RGBA的序列,因为不便区分。c可以是一个RGB或RGBA二维行数组。
 

饼状图

饼状图是被用于分成若干部分的圆表示部分在整体中所占的比例。 Matplotlib中提供pie()函数来绘制饼状图 

import matplotlib.pyplot as plt
import numpy as np
labels = ['Mon','Tue','Wed','Thu','Fri','Sat','Sun']
data = np.random.rand(7)*100
print(data)
plt.pie(data,labels=labels,autopct='%1.1f%%')  # labels :(每一块)饼图外侧显示的说明文字
plt.axis('equal')  # 该行代码使饼图长宽相等
plt.legend()  # 添加图例
plt.show()

猜你喜欢

转载自blog.csdn.net/irisMoon06/article/details/129795590