matplotlib01-plot折线图、scatter散点图
目录
一、plot绘制折线图一般用法
二、scatter绘制散点图一般用法
记录一下数据可视化的python库matplotlib,研究并纪录一下。
matplotlib.pyplot.subplots函数。subplots可以绘制一个或多个图表。返回变量fig表示整张图片,变量ax表示图片中的各个图表,大多数情况下需要使用ax。
一、plot绘制折线图一般用法
要熟悉库的用法,多用孰能生巧。
import matplotlib
import matplotlib.pyplot as pltx_values = range(1, 6)
y_values = [x**2 for x in x_values]# print(plt.style.available)
# 使用seaborn绘图样式
plt.style.use('seaborn')
fig, ax = plt.subplots()
ax.plot(x_values, y_values, linewidth=3)# xy轴的标题和图像标题
ax.set_xlabel('x values', fontsize=14)
ax.set_ylabel('y values', fontsize=14)
ax.set_title('squares', fontsize=24)# 刻度文字的大小
ax.tick_params(axis='both', labelsize=14)plt.show()
再试一下在同一个图表上绘制多组数据,并凸显数据之间的差别。
import csv
import matplotlib.pyplot as pltfrom datetime import datetime# filename = 'sitka_weather_07-2018_simple.csv'
filename = 'sitka_weather_2018_simple.csv'# 读取csv数据文件
with open(filename) as f:reader = csv.reader(f)# 表头不是数据head_row = next(reader)dates, highs, lows= [], [], []for row in reader:# 第2列是日期cur_date = datetime.strptime(row[2], '%Y-%m-%d')# 第5、6列是最高气温、最低气温,注意数字的转换high, low = int(row[5]), int(row[6])dates.append(cur_date) highs.append(high)lows.append(low)plt.style.use('seaborn')
# plt.style.use('seaborn-dark')
fig, ax = plt.subplots()ax.plot(dates, highs, c='red')
ax.plot(dates, lows, c='blue')# 最高、最低温度之间填充颜色凸显温差
# 入参一个x数据集,两个y数据集,指定颜色和透明度alpha
ax.fill_between(dates, highs, lows, facecolor='blue', alpha=0.2)ax.set_xlabel('Date', fontsize=16)
ax.set_ylabel('Temperature(F)', fontsize=16)
ax.set_title('2018 Highest-Lowest Temperature')
ax.tick_params(axis='both', which='major', labelsize=16)# plt.show()
plt.savefig('sitka_weather_2018_simple.png', bbox_inches='tight')
二、scatter绘制散点图一般用法
注意color map的用法,让数据可视化。
import matplotlib
import matplotlib.pyplot as plt
import randomx_values = range(1, 1001)
y_values = [x**2 for x in x_values]# 使用seaborn绘图样式
plt.style.use('seaborn')
fig, ax = plt.subplots()# 使用color map来达到随着值的改变来改变散点颜色
# 值越大颜色越深
ax.scatter(x_values, y_values, s=10, c=y_values, cmap=plt.cm.Blues,edgecolors='none')# 绘制绿色起点和红色终点
ax.scatter(x_values[0], y_values[0], s=20, c='green', edgecolors='none')
ax.scatter(x_values[-1], y_values[-1], s=20, c='red', edgecolors='none')# xy轴的标题和图像标题
ax.set_xlabel('x values', fontsize=14)
ax.set_ylabel('y values', fontsize=14)
ax.set_title('square scatter', fontsize=24)# 刻度文字的大小
ax.tick_params(axis='both', labelsize=14, which='major')# 刻度的范围
ax.axis([-100, 1100, -10000, 1100000])# 显示和保存图片,bbox_inches='tight'表示去掉图片中多余的空白
# plt.show()
plt.savefig('squares_scatter.png', bbox_inches='tight')

模拟一下分子的布朗运动,绿色为起点,红色为终点,模拟步数。
import matplotlib.pyplot as pltfrom random import choiceclass RandomWalk:def __init__(self, num_steps=5000, distance=5):# 模拟的步数self.num_steps = num_steps# 每一步最长步长self.distance = distance# 起点为(0, 0)self.x_values = [0]self.y_values = [0]def fill_walk(self):"""布朗运动一下"""while len(self.x_values) < self.num_steps:x_step = self._get_setp()y_step = self._get_setp()# 不能停止不动if x_step == 0 and y_step == 0:continue# 更新位置x_step += self.x_values[-1]y_step += self.y_values[-1]self.x_values.append(x_step)self.y_values.append(y_step)def _get_setp(self):"""随机选择方向和步长返回这一步"""direction = choice([-1, 1])distance = choice(range(0, self.distance))step = direction * distancereturn step if __name__ == '__main__':rw = RandomWalk(num_steps=30000)rw.fill_walk()plt.style.use('dark_background')# 指定窗口尺寸,单位英寸fig, ax = plt.subplots(figsize=(15, 9))point_numbers = range(rw.num_steps)ax.scatter(rw.x_values, rw.y_values, c=point_numbers,cmap=plt.cm.Blues, s=2, edgecolors='none')# 突出起点和终点ax.scatter(0, 0, c='green', s=50, edgecolors='none')ax.scatter(rw.x_values[-1], rw.y_values[-1], c='red', s=50,edgecolors='none')# 隐藏坐标轴ax.get_xaxis().set_visible(False)ax.get_yaxis().set_visible(False)plt.savefig('molecular_move.png', bbox_inches='tight')

相关文章:

C++const关键字作用
修饰普通变量,表示不可修改(在定义的时候必须初始化) #include <iostream> using namespace std; const int a1 10; int main() {const int a3; // 错误,没有初始化const int a2 10;a1 10; // 错误,不可修…

系统设计规范化攻克了什么问题
系统设计规范化攻克了什么问题(一) 大家好,今天总结下我从事开发工作这几年里,对于项目规范化的一点想法和感触. 在笔者心里,规范是为了解决这个问题而存在的,某些规范都是为了相应问题而存在的.所以仅仅要是能解决这个问题的文档,声明都是规范. 在某时開始设计系统,带人做系统…

五分钟让你了解 Java方法(或者叫函数)
Java方法(函数)的形式如下: 访问权限 [修饰符] 返回值类型 方法名([参数列表]){方法体 } 访问权限:控制方法(函数)能否在其他“类”中使用有public(可以在其他类中使用),protected,private(只能在该类中使用…

Bootstrap笔记
Bootstrap使用: 下载Bootstrap,用于生产环境的 Bootstrap不需要安装解压文件到任意目录创建index.html,在该页面编写代码页面起始位置添加<link rel"stylesheet" href"解压文件中css/bootstrap.min.css的路径"/>转…

Apache2.4.x下proxy_module、proxy_fcgi_module结合PHP-FPM解决内存不足问题
目录 一、背景 二、问题 三、解决方案 一、背景 最近对贫僧的个人页https://stackoperator.top进行升级,将Apache升级到2.4.46,PHP升级到7.4.15。升级后没啥问题,但是第二天却宕机了。经过查证是内存不足,导致mysql服务宕机了…

两分钟让你知道什么是“Java重载”
重载:顾名思义,就是重复负载的意思,具体到Java 就是方法名相同(重复使用),但参数列表不同。 我们通过几个Java方法来具体说明:public class Addition{public int add(int a, int b){return ab;}…

C++ static
(1)static表示静态变量。局部变量存储在栈区,在{}结束时被释放。而static修饰的变量存储在全局区,在程序结束时被释放。 (2)static修饰的变量在外部文件中无法调用,即使使用extern也无法调用。其…

TCO 2015 1A Hard.Revmatching(Hall定理)
\(Description\) 给定一个\(n\)个点的二分图,每条边有边权。求一个边权最小的边集,使得删除该边集后不存在完备匹配。\(n\leq20\)。 \(Solution\) 设点集为\(S\),与\(S\)中的点相邻的点的并集为\(N(S)\)。 由Hall定理,若存在点集\…

20169211 2016-2017-2 《移动平台开发实践》 第十周实验总结
实验一:简易计算器 实验要求 实现一个简易计算器Calc,支持 - * / 和%运算, 从命令行传入计算数据,比如:java Calc 2 3 结果为 2 3 5 java Calc 8 - 3 结果为 8 - 3 5 java Calc 2 * 3 结果为2 * 3 6 java Calc 10 / 2 结…

wordpress从apache迁移到nginx
目录 一、安装nginx 二、配置文件准备 2.1、进程运行用户 2.2、虚拟主机 2.3、重定向 三、迁移 庚子鼠年最后几天,贫僧发现了内存不足的问题,并在Apache2.4.x下proxy_module、proxy_fcgi_module结合PHP-FPM解决内存不足问题一文中阐述了解决方案。…

zabbix4.0搭建(基于CentOS6.8)
环境服务端:188.188.3.241,系统:centos6.8,mysql:5.7.3,php:5.4.9,nginx:1.12.0一、nginx编译安装NGINX_VERSION1.12.0yum -y install pcre-devel openssl-develcd /usr/…

[Ahoi2008]Meet 紧急集合
1787: [Ahoi2008]Meet 紧急集合 Time Limit: 20 Sec Memory Limit: 162 MBhttp://www.lydsy.com/JudgeOnline/problem.php?id1787Description Input Output Sample Input 6 4 1 2 2 3 2 4 4 5 5 6 4 5 6 6 3 1 2 4 4 6 6 6 Sample Output 5 2 2 5 4 1 6 0 HINT S…

C++ 回调函数
函数指针 函数指针是一种指针,具体来说是:指向函数入口地址的指针。 #include <iostream> using namespace std; double function_t(int val) {return val; } int main() {double (*ptr)(int); // 创建一个函数指针,返回值为doubl…

想知道什么是“成员变量”吗?
成员变量是直接定义在“类”中的量; 特点:成员变量有默认值,具体请看表格 数据类型默认值整型0浮点型0.0char’ ’booleanfalse其他类型null 成员变量的作用就是可以详细描述对象信息 我们来举个例子: public class UserInfo{int age;doubl…

Linux09-网络配置
目录 一、网络配置基础 1.1、网络接口 1.2、设置主机名 二、nmcli配置网络 2.1、配置固定的IP地址等 2.2、连接wifi 三、链路聚合等 一、网络配置基础 1.1、网络接口 先来对比一下RHEL6、RHEL7关于网络接口上的一些差别。 RHEL6 RHEL7 配置文件位置 /etc/sysconfig…

VScode配置ROS环境
创建一个文件夹 使用catkin_make编译工作空间的根目录 使用VScode打开 VScode 中编译 ros 快捷键 ctrl shift B 调用编译,选择:catkin_make:build 可以点击配置(右边的小齿轮),修改.vscode/tasks.json 文件 { // 有关 tasks.j…

从Excel中导入数据时,提示“未在本地计算机上注册“Microsoft.ACE.OLEDB.12.0”提供程序”的解决办法...
注意,64位系统,用64位的补丁文件; https://www.cnblogs.com/A2008A/articles/2438962.html 操作系统:使用的是64位的Windows Server 2008 解决办法: 这是由于该计算机上没有安装Microsoft Access数据库引擎组件,该组件…

天兔(Lepus)监控系统慢查询分析平台安装配置
转http://suifu.blog.51cto.com/9167728/1770672 被监控端要安装pt工具 1234[rootHE1~]## yum -y install perl-IO-Socket-SSL[rootHE1~]## yum -y install perl-DBI[rootHE1~]## yum -y install perl-DBD-MySQL[rootHE1~]## yum -y install perl-Time-HiRes[rootHE1~]# tar xv…

五分钟让你搞懂什么是“构造方法”
构造方法的形式:类名([参数列表]){} 特点:- 构造方法没有返回值,就算void也不能有,这点与Java方法(或叫函数)不一样;- 一个类中默认无参构造方法,但是当定义了一个有参构造方法时,则默认无参构造…

Linux10-归档、系统间复制文件
目录 一、tar命令 二、scp、sftp命令 三、rsync命令 一、tar命令 tar命令可以归档文件、目录,提取创建的归档文件,同时进行压缩解压缩。使用tar选项时不需要加-,下面是常用的tar选项。 c,创建一个存档。x,提取一个…

pattern
常用的正则表达式 0-9 pattern"[0-9]*" 信用卡 [0-9]{13,16} 银联卡 ^62[0-5]\d{13,16}$ Visa: ^4[0-9]{12}(?:[0-9]{3})?$ 万事达:^5[1-5][0-9]{14}$ QQ号码: [1-9][0-9]{4,14} 手机号码:^(13[0-9]|14[5|7]|15[0|1|2|3|5…

VScode配置CMAKE文件
创建一个vscode文件 记得一定要创建一个build文件夹,因为cmake编译过程中产生的中间文件会放到build文件夹中。 打开VScode 配置文件 launch.json {"version": "0.2.0","configurations": [{"name": "(gdb) Launc…

三分钟了解“Java重写”
要了解“Java重写”,首先要知道“继承”,继承是一种基于已有类(父类)创建新类(子类)的一种方式 下面的Son类继承了Father类 public class Father(){public void eat(String name,int age){System.out.prin…

2017 .NET 開發者須知
筆記-Scott Hanselman 的 2017 .NET 開發者須知 转载http://blog.darkthread.net/post-2017-01-16-dotnet-dev-should-know-2017.aspx Scott Hanselman 前兩天有篇文章-What .NET Developers ought to know to start in 2017,我的工作&#x…

Linux11-RPM软件包和YUM源
目录 一、rpm 二、yum 一、rpm 红帽开发了RPM软件包管理器,RPMRedhat Package Manager。RPM软件包名的格式为<name>-<version>-<release>.<arch>.rpm。比如,httpd-tools-2.4.6-7.el7.x86_64.rpm,其中namehttpd-to…

SQL Server 与 ORACLE 的区别
sql server 与 oracle的区别: DBMS 数据库管理系统 1.数据类型不同。 sql server 的数据类型:int ,smallint ,char,varchar,nchar,nvarchar,ntext,datetime,smalldatetime,money,decima, float,bit…… oracle 的数据类型:number(…

php如何定时执行任务
PHP的实现决定了它没有Java和.Net这种AppServer的概念, 而http协议是一个无状态的协议, php只能被用户触发, 被调用, 调用后会自动退出内存, 没有常驻内存, 就没有办法准确的定时处理那么, 如果需要用PHP定时执行某些任务的话, 可以有以下俩个方法,下面就让我们来看…

Java的多态(详尽版)
父类类型(比如Mammal)的变量指向子类(比如Cat)创建的对象,使用该变量调用父类中一个*被子类重写*的方法(比如move方法), 则父类中的方法呈现出不同的行为特征,这就是多态…

C++ memset
memset的主要功能是对一片内存进行赋值(逐字节进行) 包含在头文件#include < cstring >中。 函数模板 void *memset(void *s, int v, size_t n); s:数组名,或指向某一片内存的指针名, v:要填充的值…

Linux12-文件系统基础
目录 一、识别文件系统和设备 1.1、分区 1.2、逻辑卷 二、挂载卸载文件系统命令mount、umount、blkid、lsof 2.1、挂载 2.2、卸载 三、检查文件系统命令df、du 四、制作文件链接命令ln 4.1、硬链接 4.2、软连接 五、查找文件命令locate、find 一、识别文件系统和设备…