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,edgecolor = 'r')
#使用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)
y = [20, 10, 30, 25, 15]
x = np.arange(5)# 绘图 x x轴, height 高度, 默认:color="blue", width=0.2 线条的宽度 默认0.8
plt.bar(x, height=y, width=0.5,alpha = 0.8)
#保存图片到文件
plt.savefig(r'C:\Users\L\Desktop\matplotlib.png')

#绘制条形图
Y2006 = [1500,1600,1700,1800,1900]
Y2007 = [2000,2100,2200,2300,2400]
#设置中文显示
plt.rcParams['font.sans-serif'] = 'SimHei'
plt.rcParams['axes.unicode_minus'] = Falselabels = ['beijing','shanghai','hongkong','shenzhen','guangzhou']plt.figure(figsize=(8,8),facecolor = '#FFF0F5')bar_width = 0.3
plt.bar(np.arange(5),Y2006,label = '2006',color = 'yellow',alpha = 0.7,width = bar_width)
plt.bar(np.arange(5)+bar_width,Y2007,label = '2007',color = 'black',alpha = 0.7,width = bar_width)plt.xticks(np.arange(5)+bar_width/2,labels)
plt.ylim(1000,2800)plt.title("2006-2007年平均工资表")
plt.legend()#为每个条形图添加数值标签
for x2006,y2006 in enumerate(Y2006):plt.text(x2006,y2006,'%s'%y2006,ha = 'center',va = 'bottom')
for x2007,y2007 in enumerate(Y2007):plt.text(x2007+0.2,y2007+10,'%s'%y2007)

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

#绘制图中图
flg1 =plt.figure(facecolor = '#dfd7d7')
#add_axes通过相对位置增加子图,add_axes([left,bottom,width,height])
ax5 = flg1.add_axes([0.1,0.1,0.8,0.4])
ax6 = flg1.add_axes([0.3,0.2,0.4,0.2])
plt.plot(np.arange(5),'y->')

#绘制笛卡儿积心型函数
t = np.linspace(-4,4,100)
#在指定的间隔内返回均匀间隔的数字
x = 16*(np.sin(t)**3)
y = 13*np.cos(t)-5*np.cos(2*t)-2*np.cos(3*t)-np.cos(4*t)plt.scatter(x,y,c='r',marker='.')
plt.text(-12,0,'python数据可视化',size=25,color='k',alpha = 0.5)
plt.fill(x,y,facecolor='pink')#plt.xticks([]) 不显示刻度
#plt.yticks([])
plt.axis('off')
#plt.grid()
plt.show()

#一次性生成多条直线
a = np.arange(10)
plt.plot(a,a,'r',a,4*a,'g:',a,8*a,'c-.*',a,2*a,'y>-')``![在这里插入图片描述](https://img-blog.csdnimg.cn/20201019160723866.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQyNzYwOTIw,size_16,color_FFFFFF,t_70#pic_center)
````python
#生成正弦函数
x = np.linspace(0, 2*np.pi, 100)
y = np.sin(x)+np.random.random(len(x))plt.scatter(x,y,c='y',s=50,alpha = 0.5)
plt.plot(x,np.sin(x)+0.5,'b')#+0.5使生成曲线在点两侧
#plt.plot(x,y)

np.power([2,3,4],4)#平方
a = np.random.randn(150)
b = np.random.randn(150)
s = np.power(10*a+20*b,2)
flg2 = plt.figure(facecolor = '#dfd7d7',figsize = (6,10))
alt1 = flg2.add_subplot(3,1,1)
plt.scatter(a,b,s=s,c=np.random.rand(150),cmap=plt.cm.spring,\marker='*')
atl2 = flg2.add_subplot(3,1,2)
plt.scatter(a,b,s=s,c=np.random.rand(150),cmap=plt.cm.summer,\marker='o')
atl2 = flg2.add_subplot(3,1,3)
plt.scatter(a,b,s=s,c=np.random.rand(150),cmap=plt.cm.rainbow,\marker='>')plt.show()

#绘制3d图
from mpl_toolkits.mplot3d import Axes3D
plt.figure(figsize = (10,6))
data = np.random.randint(0,255,size = [6,6,6])
x,y,z = data[0],data[1],data[2]
ax = plt.subplot(111,projection = '3d')
ax.scatter(x[:2],y[:2],z[:2],c ='y',s=100)
ax.scatter(x[2:4],y[2:4],z[2:4],c ='b',marker = '*',s=100)
ax.scatter(x[4:6],y[4:6],z[4:6],c ='g',marker = 'v',s=100)
ax.set_label('z')
ax.set_label('Y')
ax.set_label('X')
plt.show()


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

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

2.明确了结构关系

(1)理解了figure与asex之间的关系,先建画板再建子图,再赋值给对象
fig=plt.figure(figsize=(6,6),dpi=100,facecolor=’#dfd7d7’)
#用add_subplot划分子图ax
ax=fig.add_subplot(1,1,1)

(2)学习了子图之间并列关系,若无先赋值给对象,那么就要按代码顺序plt.绘图。赋值给对象后,对象没有包含的方法就需要用set_函数调用。

3.明确了画图的流程

其中第一步和第二步的创建画图对象和子图对象都可以不设置,系统会默认做设置。第三步的个性化定制就是绘图时必备的。
4.额外学习了直方图的绘制/3D图的绘制/条形图的绘制
使用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(“频数/频率分布直方图”)
使用Axes3D函数
from mpl_toolkits.mplot3d import Axes3D
使用plt.bar()
plt.bar()#用width设置条形宽度
5.matplotlib.org是个很好用的网站,可以学到很多绘制新的各种图的方法,还有用另外一个库seaborn也可以进行绘图。

在此过程中也有遇到一个小问题,就是用savefig函数生成的图片的facecolor参数没有显示出来,图片的背景都是生成的白色。

matplotlib数据可视化实验报告1(最终版)相关推荐

  1. python数据可视化实验报告的总结,数据可视化的基本流程总结

    我们要的不是数据,而是数据告诉我们的事实.大多数人面临这样一个挑战:我们认识到数据可视化的必要性,但缺乏数据可视化方面的专业技能.部分原因可以归结于,数据可视化只是数据分析过程中的一个环节,数据分析师 ...

  2. 基于销售软件利润表的数据可视化分析:数据+代码+实验报告:

    代码: ' # pip install seaborn -i https://pypi.tuna.tsinghua.edu.cn/simple import pandas as pd import s ...

  3. python如何读取mat文件可视化_python Matplotlib数据可视化(1):简单入门

    1 matplot入门指南 matplotlib是Python科学计算中使用最多的一个可视化库,功能丰富,提供了非常多的可视化方案,基本能够满足各种场景下的数据可视化需求.但功能丰富从另一方面来说也意 ...

  4. c语言recover函数的功能是,c语言实验报告(附答案版).doc

    c语言实验报告(附答案版) 实验 一.实验学时二.实验目的1. (2)掌握不同的类型数据之间赋值的规律: (3)掌握数据在内存中的存储方式: (4)学会输入.输出函数的基本格式和使用方法: (5)学会 ...

  5. 数据可视化实验:python数据可视化-柱状图,条形图,直方图,饼图,棒图,散点图,气泡图,雷达图,箱线图,折线图

    数据可视化实验:python数据可视化 实验8-12:大数据可视化工具-python 目录 1柱状图 2条形图 3直方图 4饼图 5棒图 6散点图 7气泡图 8雷达图 9箱线图 10折线图 1柱状图 ...

  6. 第四次c语言实验报告模板,C语言实验报告模板完成版

    C语言实验报告模板完成版 <高级语言程序设计> 学 生 实 验 报 告 专业:计算机科学与技术(非师范) 学号:12600120 姓名: 李奕 实验一 C程序的运行环境和使用方法 1. 实 ...

  7. Python数据科学学习笔记之——Matplotlib数据可视化

    Matplotlib 数据可视化 1.Matplotlib 常用技巧 1.1.导入 Matplotlib import matplotlib as mpl import matplotlib.pypl ...

  8. 大学计算机应用实验项目综合报告书,大学计算机应用基础实验报告册_2010版_.doc...

    大学计算机应用基础实验报告册_2010版_ 20 09 -20 10 学年第 一 学期 实 验 报 告 实验课程名称 大学计算机应用基础 专 业 班 级 学 生 姓 号 学生 姓 名 实验指导老师 实 ...

  9. Matplotlib 数据可视化(读书笔记)

    Python 数据科学手册第四章读书笔记,仅供学习交流使用 4. Matplotlib 数据可视化 4.1 Matplotlib 常用技巧 4.1.1 导入 Matplotlib plt 是最常用的接 ...

最新文章

  1. kendoui仪表盘和柱状图 示例
  2. 在 SharePoint2010 中使用 XML 查看器取得其他站点的内容列表
  3. 这些面试题你会吗?Java-类与对象再不了解你就out啦
  4. Spring Cloud【Finchley】实战-04将订单微服务与商品微服务分别拆分为多模块
  5. 2018ICPC-ACM XIAN Invitation Onsite
  6. python字典内存分析_python--序列,字符串,列表,元组,字典,集合内存分析
  7. pythonchar中的拟合方法_Python字符串魔法方法
  8. 找出n个自然数(1,2,3,…,n)中取r个数的组合(C语言)
  9. Python高级爬虫实战,JS解密咪咕音乐登录参数分析
  10. 【全干货】5分钟带你看懂 Docker!
  11. 拼多多的车开向五环内!将继续撒钱,撒到你用为止...
  12. 44. 扑克牌的顺子(C++版本)
  13. 最新android APP框架介绍
  14. 波特率 and 比特率,傻傻分不清楚
  15. 一生必看的经典电影(转载)
  16. 组织变革-时代发展的产物
  17. Java基础系列:判断空指针的三种方式
  18. Import Netscaler VPX10.5 to Hyper-V 2012R2
  19. html保存时出现nul,c# – 有时保存的文件只包含NUL字符
  20. 示波器探头如何连接设备?

热门文章

  1. 计算机内存主要技术参数,一分钟读懂计算机内存SDR、DDR的技术规格
  2. Elasticsearch X-pack证书过期解决方法
  3. Win10/Win11下图片扩展安装 HEVC/HEIF/CR2等
  4. 路由器拨号服务器响应怎么解决,路由器无法拨号,并且服务器没有响应。
  5. 论文笔记 NAACL findings 2022|Zero-Shot Event Detection Based on Ordered Contrastive Learning and Prompt-
  6. Linux如何制作efi启动盘,教你制作macOS+Ubuntu+WindowsPE超级启动盘(仅支持UEFI)
  7. VB中Byval和byref的区别
  8. Ubuntu下Apache重启错误:Could not reliably determin解决
  9. 5G,上天了!卫星和基站擦出了火花?
  10. [前端] HTML,CSS,font-family:中文字体的英文名称 (宋体 微软雅黑)