郑重说明:本菜鸟参考简书writ大神:https://www.jianshu.com/p/6027db4a0d2f和菜鸟编程中文文档所写!

一,学习matplotlib绘图

import numpy as np
from matplotlib import pyplot as pltx = np.arange(1, 11)
print(x)
y = 2 * x + 5
print(y)
plt.title("Matplotlib demo")
plt.xlabel("x axis caption")
plt.ylabel("y axis caption")
plt.plot(x, y)
plt.show()

np.arange() 函数创建 x 轴上的值。y 轴上的对应值存储在另一个数组对象 y 中。 这些值使用 matplotlib 软件包的 pyplot 子模块的 plot() 函数绘制。图形由 show() 函数显示。

二,系统字体

from matplotlib import pyplot as plt
import matplotlib
a=sorted([f.name for f in matplotlib.font_manager.fontManager.ttflist])for i in a:print(i)

三,换颜色形状

import numpy as np
from matplotlib import pyplot as pltx = np.arange(1, 11)
y = 2 * x + 5
plt.title("Matplotlib demo")
plt.xlabel("x axis caption")
plt.ylabel("y axis caption")
plt.plot(x, y, "ob")
plt.show()

四,绘制正弦波

import numpy as np
import matplotlib.pyplot as plt
# 计算正弦曲线上点的 x 和 y 坐标
x = np.arange(0,  3  * np.pi,  0.1)
y = np.sin(x)
plt.title("sine wave form")
# 使用 matplotlib 来绘制点
plt.plot(x, y)
plt.show()

五,subplot()函数

subplot() 函数允许你在同一图中绘制不同的东西

import numpy as np
import matplotlib.pyplot as plt
# 计算正弦和余弦曲线上的点的 x 和 y 坐标
x = np.arange(0,  3  * np.pi,  0.1)
y_sin = np.sin(x)
y_cos = np.cos(x)
# 建立 subplot 网格,高为 2,宽为 1
# 激活第一个 subplot
plt.subplot(2,  1,  1)
# 绘制第一个图像
plt.plot(x, y_sin)
plt.title('Sine')
# 将第二个 subplot 激活,并绘制第二个图像
plt.subplot(2,  1,  2)
plt.plot(x, y_cos)
plt.title('Cosine')
# 展示图像
plt.show()

六,bar()函数    条形图

pyplot 子模块提供 bar() 函数来生成条形图。

from matplotlib import pyplot as plt
x =  [5,8,10]
y =  [12,16,6]
x2 =  [6,9,11]
y2 =  [6,15,7]
plt.bar(x, y, align =  'center')
plt.bar(x2, y2, color =  'g', align =  'center')
plt.title('Bar graph')
plt.ylabel('Y axis')
plt.xlabel('X axis')
plt.show()

七,plt()  直方图

from matplotlib import pyplot as plt
import numpy as npa = np.array([22, 87, 5, 43, 56, 73, 55, 54, 11, 20, 51, 5, 79, 31, 27])
plt.hist(a, bins=[0, 20, 40, 60, 80, 100])
plt.title("histogram")
plt.show()

八,扇形图  pie

import matplotlib.pyplot as mp
mp.figure('pie', facecolor='lightgray')
#整理数据
values = [26, 17, 21, 29, 11]
spaces = [0.01, 0.01, 0.01, 0.01, 0.01]
labels = ['Python', 'JavaScript','C++', 'Java', 'PHP']
colors = ['dodgerblue', 'orangered','limegreen', 'violet', 'gold']
mp.figure('Pie', facecolor='lightgray')
mp.title('Pie', fontsize=20)
# 等轴比例
mp.axis('equal')
mp.pie(values,         # 值列表spaces,         # 扇形之间的间距列表labels,         # 标签列表colors,         # 颜色列表'%d%%',         # 标签所占比例格式shadow=True,    # 是否显示阴影startangle=90,  # 逆时针绘制饼状图时的起始角度radius=1        # 半径
)
mp.show()

九,等高线图

import numpy as np
import matplotlib.pyplot as mp
n = 1000
# 生成网格化坐标矩阵
x, y = np.meshgrid(np.linspace(-3, 3, n),np.linspace(-3, 3, n))
# 根据每个网格点坐标,通过某个公式计算z高度坐标
z = (1 - x/2 + x**5 + y**3) * np.exp(-x**2 - y**2)
mp.figure('Contour', facecolor='lightgray')
mp.title('denggaoxian', fontsize=20)
mp.xlabel('x', fontsize=14)
mp.ylabel('y', fontsize=14)
mp.tick_params(labelsize=10)
mp.grid(linestyle=':')
# 绘制等高线图
mp.contourf(x, y, z, 8, cmap='jet')
cntr = mp.contour(x, y, z, 8, colors='black',linewidths=0.5)
# 为等高线图添加高度标签
mp.clabel(cntr, inline_spacing=1, fmt='%.1f',fontsize=10)
mp.show()

十,散点图

import numpy as np
import matplotlib.pyplot as mp
n = 100
# 172:  期望值
# 10:   标准差
# n:    数字生成数量
x = np.random.normal(172, 20, n)
y = np.random.normal(60, 10, n)
mp.figure('scatter', facecolor='lightgray')
mp.title('scatter')
# mp.scatter(x, y)
mp.scatter(x, y, c='red')           #直接设置颜色
d = (x-172)**2 + (y-60)**2
mp.scatter(x, y, c=d, cmap='jet')    #以c作为参数,取cmap颜色映射表中的颜色值
mp.show()

十一,3D图

import numpy as np
import matplotlib.pyplot as mp
from mpl_toolkits.mplot3d import axes3d
n = 1000
x = np.random.normal(0, 1, n)
y = np.random.normal(0, 1, n)
z = np.random.normal(0, 1, n)
d = np.sqrt(x ** 2 + y ** 2 + z ** 2)
mp.figure('3D Scatter')
ax = mp.gca(projection='3d')  # 创建三维坐标系
mp.title('3D Scatter', fontsize=20)
ax.set_xlabel('x', fontsize=14)
ax.set_ylabel('y', fontsize=14)
ax.set_zlabel('z', fontsize=14)
mp.tick_params(labelsize=10)
ax.scatter(x, y, z, s=60, c=d, cmap='jet_r', alpha=0.5)
mp.show()

十二,极坐标图

import numpy as np
import matplotlib.pyplot as mp
mp.figure('Polar', facecolor='orangered')
mp.gca(projection='polar')
mp.title('Polar')
mp.xlabel(r'$\theta$', fontsize=14)
mp.xlabel(r'$\rho$', fontsize=14)
mp.grid(linestyle=':')
# 绘制线性关系
# t = np.linspace(0, 4*np.pi, 1000)
# r = 0.8*t
# mp.plot(t, r)
# mp.show()
# 绘制sin曲线
x = np.linspace(0, 6*np.pi, 1000)
y = 3*np.sin(6*x)
mp.plot(x, y)
mp.show()

十三,3D平面图

import numpy as np
import matplotlib.pyplot as mp
from mpl_toolkits.mplot3d import axes3d
n = 1000
# 生成网格化坐标矩阵
x, y = np.meshgrid(np.linspace(-3, 3, n),np.linspace(-3, 3, n))
# 根据每个网格点坐标,通过某个公式计算z高度坐标
z = (1 - x/2 + x**5 + y**3) * np.exp(-x**2 - y**2)
mp.figure('3D', facecolor='lightgray')
ax3d = mp.gca(projection='3d')
mp.title('3D', fontsize=20)
# ax3d.set_xlabel('x', fontsize=14)
# ax3d.set_ylabel('y', fontsize=14)
# ax3d.set_zlabel('z', fontsize=14)
mp.tick_params(labelsize=10)
# 绘制3D平面图
# rstride: 行跨距
# cstride: 列跨距
ax3d.plot_surface(x, y, z, rstride=10, cstride=10, cmap='jet')
mp.show()

十四,sin(),cos()

import numpy as np
import matplotlib.pyplot as mp
n = 1000
x = np.linspace(0, 8 * np.pi, n)
sin_y = np.sin(x)
cos_y = np.cos(x / 2) / 2
mp.figure('Fill', facecolor='lightgray')
mp.title('Fill', fontsize=20)
mp.xlabel('x', fontsize=14)
mp.ylabel('y', fontsize=14)
mp.tick_params(labelsize=10)
mp.grid(linestyle=':')
mp.plot(x, sin_y, c='dodgerblue',label=r'$y=sin(x)$')
mp.plot(x, cos_y, c='orangered',label=r'$y=\frac{1}{2}cos(\frac{x}{2})$')
mp.fill_between(x, cos_y, sin_y, cos_y < sin_y,color='dodgerblue', alpha=0.5)
mp.fill_between(x, cos_y, sin_y, cos_y > sin_y,color='orangered', alpha=0.5)
mp.legend()
mp.show()

十五,生成动画泡泡

# 生成动画泡泡
import numpy as np
import matplotlib.pyplot as mp
import matplotlib.animation as ma# 构建100个泡泡,确定属性
n = 100
balls = np.zeros(100, dtype=[('position', float, 2),('size', float, 1),('growth', float, 1),('color', float, 4)])
# 初始化所有ball的属性值
# 随机生成最小值为0,最大值为1的N行2列的数组
# 初始化所有ball图标
balls['position'] = np.random.uniform(0, 1, (n, 2))
balls['size'] = np.random.uniform(40, 70, n)
balls['growth'] = np.random.uniform(10, 20, n)
balls['color'] = np.random.uniform(0, 1, (n, 4))
# 画图
mp.figure('Animation', facecolor='lightgray')
mp.title('Animation', fontsize=16)
mp.xticks([])
mp.yticks([])
sc = mp.scatter(balls['position'][:, 0], balls['position'][:, 1], balls['size'], color=balls['color'])
def update(number):# 定义更新图像balls['size'] += balls['growth']# 让某个球重新初始化属性ind = number % nballs[ind]['size'] = np.random.uniform(40, 70, 1)balls[ind]['position'] = np.random.uniform(0, 1, (1, 2))sc.set_sizes(balls['size'])sc.set_offsets(balls['position'])
anim = ma.FuncAnimation(mp.gcf(), update, interval=30)
mp.show()

matplotlib绘图(菜鸟开始入门) 个人学习记录相关推荐

  1. Opencv 入门篇学习记录(图片)

    title: Opencv 入门篇学习记录(图片) Opencv 入门篇学习记录(图片) 前言 很早以前就接触Python了,大学的时候还自学了一段时间去做了课设,写了一些最速梯度下降法.黄金分割法. ...

  2. 有关路径规划入门的学习记录

    路径规划入门学习小记 路径规划算法实现 基于搜索的路径规划--Searching based 算法基础 BFS Breadth-First Search A*算法 算法实现 A*实现 BFS实现 基于 ...

  3. ROS入门WIKI学习记录

    20180511 编写订阅器节点 代码解释 34 void chatterCallback(const std_msgs::String::ConstPtr& msg) 35 { 36 ROS ...

  4. Matplotlib绘图从零入门到实践(含各类用法详解)

    一.引入 Matplotlib 是一个Python的综合库,用于在 Python 中创建静态.动画和交互式可视化. 本教程包含笔者在使用Matplotlib库过程中遇到的各类完整实例与用法还有遇到的库 ...

  5. micro-app-vue2 vue3 超详细快速入门指南 学习记录

    micro-app-vue 快速入门指南 简介 micro-app是京东零售推出的一款微前端框架,它基于类WebComponent进行渲染,从组件化的思维实现微前端,旨在降低上手难度.提升工作效率.它 ...

  6. MUMPS入门+Caché学习记录

    翻译自:http://www.cs.uni.edu/~okane/ Mumps History Mumps(马萨诸塞州综合医院实用程序多程序设计系统)是一种通用编程语言环境,它通过程序级访问来提供 A ...

  7. MNIST机器学习入门(学习记录)——1

    看的教程是下面这个网址,教程的题目和我的标题前半部分一样.我只是只是按部就班的操作一遍,加粗的是我自己的闲言碎语. http://www.tensorfly.cn/tfdoc/tutorials/mn ...

  8. Python入门基础学习记录(二)汇率案例学习记录

    一.汇总整理 1.操作 ①新建python文件 工程右键--new--python file 2.注意问题与知识点 >变量定义:直接写变量名即可,例如定义一个字符串并赋值123: rmb_str ...

  9. python做实时温度曲线图_Python学习记录 - matplotlib绘制温度变化折线图

    Python学习记录 - matplotlib绘制温度变化折线图 Python学习记录 - matplotlib绘制温度变化折线图 题目:列表a表示10点到12点每一分钟的气温,累计为2个小时,绘制折 ...

最新文章

  1. 出现Failed to get convolution algorithm的解决方法
  2. 主流的Python领域和框架--转
  3. OpenLdap+MySQL笔记
  4. python自动化测试的工具_python自动化测试(3)- 自动化框架及工具
  5. 基于FtpClient(JDK1.7)实现Ftp连接
  6. 【html】表单元素练习
  7. 微信小程序内嵌网页的一些(最佳)实践
  8. 从月收入8000元到15000元,你和LabVIEW编程高手的差距到底在哪?
  9. 初次使用dcm4che-tool-findscu做查询
  10. 全球及中国工业互联网产业运行态势与布局状况调研报告2022-2028年
  11. Adobe Experience Cloud落地中国,Adobe、微软与世纪互联共庆三方合作
  12. 考研时间安排和考研内容
  13. 最美圣诞树,用Python画棵雪夜圣诞树送给你
  14. (三)改掉这些坏习惯,还怕写不出优雅的代码?
  15. 英特尔投资部宣布增投10家新创公司,他们都有哪些能耐?---ESM
  16. 全球及中国射频器件市场规模格局与投资战略决策报告2022版
  17. HTML+SASS项目:音乐Tai
  18. 刷新计算机无法显示,显示器无法调整刷新频率的解决办法
  19. Python指定使用gpu
  20. AcWing 850. Dijkstra求最短路 II(堆优化dijkstra)

热门文章

  1. 华为交换机PVID与VLAN ID及TAG 、UNTAG学习记录
  2. 每日更新的电信ip段,联通ip段,铁通ip段和移动ip段
  3. 南信大计算机科学与坫,校园万象 | 南信大开启无处不在“i-NUIST”模式,疑难问题,为你一一解答!...
  4. 可以放GOOGLE广告的博客总汇
  5. 优酷通过世界杯,让所有人知道:优酷真的优,真的酷!
  6. 重装服务器2012系统,WaveCN.com - 站长手记 - 站长手记 - WINDOWS SERVER 2012 R2 STANDARD 重装 WSUS 过程记录...
  7. 深度学习(10):PointNet论文翻译与学习
  8. PWM脉宽调制信号转直流电压电流模拟信号输出隔离变送器5v10v4-20ma
  9. 欧盟砍伐森林法规和遵守情况 用Dimitra技术解决森林砍伐问题
  10. 【offerMe--面经必备】---交通、微众银行面经分享(包含答案)