计算机辅助数据绘图(matlab\python\js)
1. matlab绘图
官方说明:https://ww2.mathworks.cn/help/matlab/creating_plots/types-of-matlab-plots.html
基本图形绘制
hold on
x=linspace(0, 2*pi, 100);
y=sin(x); z=cos(x); %基本函数
plot(x,y,'-',x,z); %基本绘图
legend('sin(x)','cos(x)'); %注解
title('test'); %标题
xlabel('x'); ylabel('y or z'); %坐标标注
str='$$ \sin x $$';
text(1.19,0.42,str,'Interpreter','latex','FontSize',18); %图表中加入latex公式
annotation('arrow','x',[0.35 0.4],'y',[0.71 0.78]); %创建注释
%annotation(lineType,x,y) 创建一个在当前图窗中的两个点之间延伸的线条或箭头注释。
%将 lineType 指定为 'line'、'arrow'、'doublearrow' 或 'textarrow'。
%将 x 和 y 分别指定为 [x_begin x_end] 和 [y_begin y_end] 形式的二元素向量。
hold off
输出结果为:
可以看到上面的图形包含了最基本的绘图,坐标轴以及相应注解。注意,由于x为向量,所有在进行某些运算时需要在相应运算符前加上"."号,以进行数值计算。
基本命令:
plot
:我们主要使用plot(X,Y,LineSpec)
的形式来设置线型、标记符号和颜色。有关LineSpec的详细参数如下图:
legend
:主要用于绘制图例说明,及图1右上角的方框。title
、xlabel
、ylabel
:分别用于绘制标题、X坐标标注、Y坐标标准。text
:插入LaTex公式,并固定位置。
多图绘制和图像设置
- 多图在同一个figure上输出:
x=linspace(0, 2*pi, 100);
y=sin(x);
z=cos(x);
s=x+2;
t=x.^2;
subplot(2,2,1),plot(x,y);
subplot(2,2,2),plot(x,z);
subplot(2,2,3),plot(x,s);
subplot(2,2,4),plot(x,t);
输出结果如下:
subplot
的前两个参数表示2x2的分布,最后一个参数表示序号。然后再用逗号分隔,再加上plot
命令即可完成相应序号的图形绘制。
- 多图在不同figure上输出及图形的设置:
x=linspace(0, 2*pi, 100);
y=sin(x); z=cos(x);
figure('Position',[311 211 360 220]),plot(x,z);
figure, h=plot(x,y);
get(h); %line property
get(gca); %axes property
set(gca, 'XLim', [0 2*pi]);
set(gca, 'FontSize', 25);
set(gca,'XTick', 0:pi/2:2*pi);
set(gca,'XTickLabel', {'0','\pi/2','\pi','3\pi/2','2\pi'});
set(h, 'LineStyle', '-.', 'LineWidth', 7.0, 'color', 'g');
输出结果为:
figure
:使用默认属性值创建一个新的图窗窗口。生成的图窗为当前图窗。其中'Position'参数可以指定绘制图形绘制区域的位置与大小。v = get(h)
:返回 h 标识的图形对象的所有属性和属性值。v 是一个结构体,其字段名称为属性名称,其值为对应的属性值。h 可以是单个对象或 m×n 对象数组。如果 h 是单个对象且您不指定输出参数,则 MATLAB 会在屏幕上显示该信息。(可使用help
命令查看更多说明)。set(H,Name,Value)
:为 H 标识的对象指定其 Name 属性的值。使用时须用单引号将属性名引起来,例如,set(H,'Color','red')。如果 H 是对象的向量,则 set 会为所有对象设置属性。如果 H 为空(即 []),set 不执行任何操作,但不返回错误或警告。
图像设置:
- 首先通过
get
函数获取相关属性,再使用set
函数设置相关命令。(get并非编程必须的操作,即知道相关属性可直接使用set设置) gca
:表示数轴的属性,可用来设置x,y坐标轴的长度与宽带及坐标标注。
三维图形绘制
基本三维绘图
%% 三维
[X,Y] = meshgrid(1:0.1:10,1:0.1:20);
Z = sin(X) + cos(Y);
s=surf(X,Y,Z)
colorbar
输出图像为:
也可以加上s.EdgeColor = 'none';
2.python绘图
官方文档:https://matplotlib.org/stable/gallery/index.html
菜鸟教程:https://www.runoob.com/w3cnote/matplotlib-tutorial.html
使用python绘图时,通常会使用到numpy库与matplotlib库。关于matplotlib的详细介绍在mtaplotlib的官网都有详细介绍。
基本绘图
import matplotlib.pyplot as plt
import numpy as np
x=np.linspace(1.0,4.0,20)
print(x)
y=x*x*x+x*x+1
plt.plot(x,y,color="blue", linewidth=2.5, linestyle="-")
plt.ylabel('some numbers')
plt.show()
输出图像如下:
- python中numpy中的
linspace
用法与matlab中的用法有所区别,x=np.linspace(1.0,4.0,20)
表示在[1.0,4.0]区间均等分生成20个数值。 plot
:是用来绘图的主要命令,可以通过color等参数设置相关属性。show
:用于展示最终生成的图形。
多图绘制与标注
import matplotlib.pyplot as plt
import numpy as np
import matplotlib.gridspec as gridspec
fig = plt.figure(tight_layout=True)
gs = gridspec.GridSpec(2, 2)
ax = fig.add_subplot(gs[0, :])
ax.plot(np.arange(0, 1e6, 1000))
ax.set_ylabel('YLabel0')
ax.set_xlabel('XLabel0')
for i in range(2):
ax = fig.add_subplot(gs[1, i])
ax.plot(np.arange(1., 0., -0.1) * 2000., np.arange(1., 0., -0.1))
ax.set_ylabel('YLabel1 %d' % i)
ax.set_xlabel('XLabel1 %d' % i)
if i == 0:
for tick in ax.get_xticklabels():
tick.set_rotation(55)
fig.align_labels() # same as fig.align_xlabels(); fig.align_ylabels()
plt.show()
图像输出为:
tight_layout=True
:代码中的第五行参数表示——作图自动tight(紧凑)布局。(参考)GridSpec
:指定要放置子批次的网格的几何图形。需要设置网格的行数和列数。或者,可以调整子批次布局参数(例如,左、右等)。gs = gridspec.GridSpec(2, 2)
:表明生成2x2的子图。可以参考这篇文章。add_subplot(self, *args, **kwargs)
:向figure添加一个Axes作为一subplot布局的一部分。可以参考这篇文章。
3.echarts绘图
官方网址:https://echarts.apache.org/examples/zh/index.html
echarts为JavaScript的一个绘图工具。是一个功能齐全的数据可视化工具。
基本介绍
我们这里使用一个较为简单的示例:
官网为我们提供了在线编辑功能,所以对于基本的绘图我们可以直接在官网编辑后输出。
编辑后输出的图片:
当然对于使用json格式存储引用的数据无法直接在线编辑,需要下载相应的库。(博主对echarts使用较少,有相关建议或想法欢迎评论区指出)。
计算机辅助数据绘图(matlab\python\js)的更多相关文章
- Atitit.异步编程 java .net php python js 对照
Atitit.异步编程 java .net php python js 的比較 1. 1.异步任务,异步模式, APM模式,, EAP模式, TAP 1 1.1. APM模式: Beg ...
- 全国计算机等级考试二级Python语言程序设计考试大纲
全国计算机等级考试二级Python语言程序设计考试大纲(2018年版) 基本要求 掌握Python语言的基本语法规则. 掌握不少于2个基本的Python标准库. 掌握不少于2个Python第三方库,掌 ...
- 一个用于提取简体中文字符串中省,市和区并能够进行映射,检验和简单绘图的python模块
简介 一个用于提取简体中文字符串中省,市和区并能够进行映射,检验和简单绘图的python模块. 举个例子: ["徐汇区虹漕路461号58号楼5楼", "泉州市洛江区万安塘 ...
- Atitit.异步编程 java .net php python js 的比较
Atitit.异步编程 java .net php python js 的比较 1. 1.异步任务,异步模式, APM模式,, EAP模式, TAP 1 1.1. APM模式: Beg ...
- 像计算机科学家一样思考Python(第2版)|百度网盘免费下载|Python新手入门资料
像计算机科学家一样思考Python(第2版)|百度网盘免费下载 提取码:01ou 内容简介 · · · · · · 本书以培养读者以计算机科学家一样的思维方式来理解Python语言编程.贯穿全书的主 ...
- win7 64 旗舰版虚拟GPU-VMware下+vs2013安装caffe+matlab+python
转发请说明来处 Win7配置caffe(无GPU) 配置环境: 必须:win7 64 + vs2013 Win7 64位旗舰版要升级到service spack(因为是在vs2013下,想安装vs20 ...
- python js(JavaScript)初识
####################总结############## 引入: 可以在body标签中放入<script type=”text/javascript”></scrip ...
- 灰色预测--matlab&python实现
function SGrey X0 = input('请输入原始负荷数据:'); %输入原始数据 n = length(X0); %原始n年数据 %累加生成 X1 = zeros(1,n); for ...
- 【重点突破】——第三方绘图工具FusionCharts.js的使用详解
一.引言 项目组中,经常会因为绘制图表的繁杂度,衡量会不会使用第三方绘图工具,如果自己做很困难,成本使用高于第三方绘图工具库,就会使用.很多人使用的是Chart.js,因为它是免费使用的,不过,缺点就 ...
随机推荐
- 把rocksdb配置成leveldb
将rocksdb配置成leveldb 1.配置方法 配置方式有三种: 第一种适合进行性能测试对比:是以参数形式在运行db_bench或ycsb-c的时候以参数形式将rocksdb将其配置成leveld ...
- hisql 新一代无实体ORM使用第一步 hisql安装使用
安装 github hisql 最新源码下载 也可以通过nuget安装 注意:HiSql仅支持.net5或以上环境 选择您需要支持的数据库对应的支持包进行安装 本例使用sqlserver进行演示,请安 ...
- 前后端分离 导致的 静态页面 加载 <script type="module" > 报CORS 跨域错误,提示 blocked by CORS policy
1.前言 静态页面 加载 <script type="module" > 报CORS 跨域错误,提示Access to script at ftp:///xxx.js ...
- 通过js触发launch事件获取页面信息
注:图片如果损坏,点击文章链接:https://www.toutiao.com/i6814776265602499080/ 承接上一篇文档<页面Cookie的JS文件编写> 思路 继续之前 ...
- Spark-2.0.2源码编译
注:图片如果损坏,点击文章链接:https://www.toutiao.com/i6813925210731840013/ Spark官网下载地址: http://spark.apache.org/d ...
- vue3.0+vite项目搭建
npm init vite-app <project-name> cd <project-name> 根据控制台的提示执行: npm install / yarn npm ru ...
- HDU 1576 A/B (两种解法)
原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=1576 分析:等式枚举法,由题意可得:, ,代入 , 得:,把变量 合在一起得: :即满足 为 倍 ...
- markdown mermaid状态图
状态图 状态图是一种用于计算机科学和相关领域描述系统行为的图.状态图要求描述的系统由有限数量的状态组成. 语法: stateDiagram-v2 [*] --> Still Still --&g ...
- C# 给PDF文档设置过期时间
我们可以给一些重要文档或者临时文件设置过期时间和过期信息提示来提醒读者或管理者文档的时效性,并及时对文档进行调整.更新等.下面,分享通过C#程序代码来给PDF文档设置过期时间的方法. 引入dll程序集 ...
- 探索新冠肺炎(COVID-19)对全球航班的影响
Cesium中文网:http://cesiumcn.org/ | 国内快速访问:http://cesium.coinidea.com/ 随着今天从欧洲到美国的旅行限制生效,以及为了减缓新冠病毒的传播更 ...