matplotlab实验报告1

标签: python

import matplotlib.pyplot as plt
# 创建绘图对象figure,设置画布大小figsize,分辨率dpi,背景颜色facecolor可以用十六进制颜色代码
fig=plt.figure(figsize=(6,6),dpi=100,facecolor='#dfd7d7')
#划分子图ax
ax=fig.add_subplot(1,1,1)
import numpy as np
x = np.linspace(-3,3,100)
y = np.random.randn(100)
#设置中文显示
plt.rcParams['font.sans-serif'] = 'SimHei' 
plt.rcParams['axes.unicode_minus'] = False
#生成散点图
plt.grid(linestyle = ':',color = 'r',alpha = 0.5)
plt.scatter(x,y,c='k',alpha = 0.3,marker = '*',label = 'satter',lw = 1)
#使用marker改变点形状
plt.xlim(0,4)
plt.ylim(-3,3)
#表格设计
plt.xlabel('x轴')
plt.ylabel('y轴')
plt.axhline(y = 0,color = 'r',ls = '-.',alpha = 0.8)
plt.axvline(x = 2.0,color = 'r',ls = '-.',alpha = 0.8)
plt.legend(loc = 'upper right')
plt.title('Structure of matplotlib')
#生成sin图
x = np.linspace(1,3.5,100)
y = np.sin(x)
plt.plot(x,y,c ='y',alpha = 0.5,ls = '--',label = 'sin(x)',lw = 2)
plt.legend()
#设置平行于x/y轴的参考区域
plt.axvspan(xmin=1.5,xmax=2.5,color='blue',alpha=0.1)
plt.axhspan(ymin=-1,ymax=1,color='yellow',alpha=0.1)
plt.annotate('maxium',xy = (1.5,1),xytext = (1.3,1.3),arrowprops = {'arrowstyle':'->','connectionstyle':'arc3'})
#connectionstyle描绘箭头的样式的,例如箭头的一个弧度之类的


在这里插入图片描述

# 创建绘图对象figure,设置画布大小figsize,分辨率dpi,背景颜色facecolor可以用十六进制颜色代码
fig=plt.figure(figsize=(6,6),dpi=100,facecolor='#dfd7d7')
#子图ax1
ax1 =fig.add_subplot(2,2,1)
x = np.linspace(1,3.5,100)
y = np.sin(x)
plt.plot(x,y,c ='y',alpha = 0.5,ls = '--',label = 'sin(x)',lw = 2)
plt.legend()
plt.title('正弦图')
#子图ax2
ax2 = plt.subplot(2,2,2)
x = np.linspace(-3,3,100)
y = np.random.randn(100)
plt.scatter(x,y,c='k',alpha = 0.5,label = 'scatter',marker = '*',lw =1)
plt.legend(loc = 'upper right')
plt.title('散点图')
#子图3
ax3 = plt.subplot(2,2,3)
plt.pie([1,1,1])
plt.title('扇形图')
#子图4
ax4 = plt.subplot(2,2,4)

data = np.random.randn(10000)

"""
绘制直方图
data:必选参数,绘图数据
bins:直方图的长条形数目,可选项,默认为10
normed:是否将得到的直方图向量归一化,可选项,默认为0,代表不归一化,显示频数。normed=1,表示归一化,显示频率。
facecolor:长条形的颜色
edgecolor:长条形边框的颜色
"""
plt.hist(data, bins=40, normed=0, facecolor="blue", edgecolor="black", alpha=0.5,label = 'x')# 显示横轴标签
plt.legend()
plt.xlabel("区间")# 显示纵轴标签
plt.ylabel("频数/频率")# 显示图标题
plt.title("频数/频率分布直方图")



在这里插入图片描述

总结

1.通过这次绘图过程,对matplotlib图表绘制所使用的函数和方法印象加深

(1). plot()函数包含了很多基础的绘图功能,用它来绘制线图;
(2)scatter()函数用以绘制散点图;
(3)xlim() / ylim()用于设置坐标轴的数值显示范围;
(4)xlabel() / ylabel()用于设置坐标轴的标签;
(5)grid()函数用于设置图形中的网格线;
(6)axhline() / axvline():用于设置水平参考线和垂直参考线;
(7)axhspan() / axvspan()用于设置平行于x轴/y轴的参考区域;
(8)annotate():添加指向性注释文本,灵活调整注释的位置以及指示箭头的样式;
(9) text():图形中的注释,但它跟annotate()的区别是它用于添加不带指向性箭头的文本注释;
(10)title():形的标题;

2.明确了结构关系

(1)理解了figure与asex之间的关系,先建画板再建子图,再赋值给对象

fig=plt.figure(figsize=(6,6),dpi=100,facecolor='#dfd7d7')
#划分子图ax
ax=fig.add_subplot(1,1,1)

(2)学习了子图之间并列关系,若无先赋值给对象,那么就要按代码顺序绘图

3.明确了画图的流程

在这里插入图片描述

4.额外学习了直方图的绘制
使用plt.hist()

plt.hist(data, bins=40, normed=0, facecolor="blue", edgecolor="black", alpha=0.5,label = 'x')# 显示横轴标签
plt.legend()
plt.xlabel("区间")# 显示纵轴标签
plt.ylabel("频数/频率")# 显示图标题
plt.title("频数/频率分布直方图")
版权声明:本文为qq_42760920原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_42760920/article/details/108765671