当前位置: 首页 > 编程日记 > 正文

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')
标题scatter函数入参c、cmap,使用color map来达到随着值的改变来改变散点颜色

模拟一下分子的布朗运动,绿色为起点,红色为终点,模拟步数。

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关键字作用

修饰普通变量&#xff0c;表示不可修改&#xff08;在定义的时候必须初始化&#xff09; #include <iostream> using namespace std; const int a1 10; int main() {const int a3; // 错误&#xff0c;没有初始化const int a2 10;a1 10; // 错误&#xff0c;不可修…

系统设计规范化攻克了什么问题

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

五分钟让你了解 Java方法(或者叫函数)

Java方法&#xff08;函数&#xff09;的形式如下&#xff1a; 访问权限 [修饰符] 返回值类型 方法名([参数列表]){方法体 } 访问权限&#xff1a;控制方法(函数)能否在其他“类”中使用有public(可以在其他类中使用)&#xff0c;protected&#xff0c;private(只能在该类中使用…

Bootstrap笔记

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

Apache2.4.x下proxy_module、proxy_fcgi_module结合PHP-FPM解决内存不足问题

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

两分钟让你知道什么是“Java重载”

重载&#xff1a;顾名思义&#xff0c;就是重复负载的意思&#xff0c;具体到Java 就是方法名相同&#xff08;重复使用&#xff09;&#xff0c;但参数列表不同。 我们通过几个Java方法来具体说明&#xff1a;public class Addition{public int add(int a, int b){return ab;}…

C++ static

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

TCO 2015 1A Hard.Revmatching(Hall定理)

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

20169211 2016-2017-2 《移动平台开发实践》 第十周实验总结

实验一&#xff1a;简易计算器 实验要求 实现一个简易计算器Calc,支持 - * / 和%运算, 从命令行传入计算数据&#xff0c;比如&#xff1a;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、重定向 三、迁移 庚子鼠年最后几天&#xff0c;贫僧发现了内存不足的问题&#xff0c;并在Apache2.4.x下proxy_module、proxy_fcgi_module结合PHP-FPM解决内存不足问题一文中阐述了解决方案。…

zabbix4.0搭建(基于CentOS6.8)

环境服务端&#xff1a;188.188.3.241&#xff0c;系统&#xff1a;centos6.8&#xff0c;mysql&#xff1a;5.7.3&#xff0c;php&#xff1a;5.4.9&#xff0c;nginx&#xff1a;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++ 回调函数

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

想知道什么是“成员变量”吗?

成员变量是直接定义在“类”中的量&#xff1b; 特点&#xff1a;成员变量有默认值,具体请看表格 数据类型默认值整型0浮点型0.0char’ ’booleanfalse其他类型null 成员变量的作用就是可以详细描述对象信息 我们来举个例子&#xff1a; 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 调用编译&#xff0c;选择:catkin_make:build 可以点击配置&#xff08;右边的小齿轮&#xff09;&#xff0c;修改.vscode/tasks.json 文件 { // 有关 tasks.j…

从Excel中导入数据时,提示“未在本地计算机上注册“Microsoft.ACE.OLEDB.12.0”提供程序”的解决办法...

注意&#xff0c;64位系统&#xff0c;用64位的补丁文件; https://www.cnblogs.com/A2008A/articles/2438962.html 操作系统&#xff1a;使用的是64位的Windows Server 2008 解决办法&#xff1a; 这是由于该计算机上没有安装Microsoft Access数据库引擎组件&#xff0c;该组件…

天兔(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…

五分钟让你搞懂什么是“构造方法”

构造方法的形式&#xff1a;类名([参数列表]){} 特点&#xff1a;- 构造方法没有返回值&#xff0c;就算void也不能有&#xff0c;这点与Java方法(或叫函数)不一样&#xff1b;- 一个类中默认无参构造方法&#xff0c;但是当定义了一个有参构造方法时&#xff0c;则默认无参构造…

Linux10-归档、系统间复制文件

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

pattern

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

VScode配置CMAKE文件

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

三分钟了解“Java重写”

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

2017 .NET 開發者須知

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

Linux11-RPM软件包和YUM源

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

SQL Server 与 ORACLE 的区别

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

php如何定时执行任务

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

Java的多态(详尽版)

父类类型&#xff08;比如Mammal&#xff09;的变量指向子类&#xff08;比如Cat&#xff09;创建的对象&#xff0c;使用该变量调用父类中一个*被子类重写*的方法&#xff08;比如move方法&#xff09;&#xff0c; 则父类中的方法呈现出不同的行为特征&#xff0c;这就是多态…

C++ memset

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

Linux12-文件系统基础

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