Python开发【模块】:matplotlib 绘制折线图
matplotlib
1、安装matplotlib
① linux系统安装
# 安装matplotlib模块 $ sudo apt-get install python3-matplotlib
# 如果是python2.7 执行如下命令
$ sudo apt-get install python-matplotlib
# 如果你安装较新的Python,安装模块一乐的一些库
$ sudo apt-get install python3.5-dev python3.5-tk tk-dev
$ sudo apt-get install libfreetype6-dev g++
# 再使用pip来安装模块
$ pip install --user matplotlib
② OS系统中安装
# 安装matplotlib模块 $ pip install --user matplotlib
③ windows系统中安装
# 安装matplotlib模块 $pip3 install matplotlib
进入终端执行import matplotlib 不报错表示执行成功
2、绘制简单的折线图
① 创建mpl_squares.py文件:
import matplotlib.pyplot as plt # 导入模块 squares = [1,4,9,16,25] # 指定列表Y坐标为列表中的值,X坐标为列表下标
plt.plot(squares) # 传入列表
plt.show() # 输出图像
绘图:

② 修改标签文字和线条粗细:
import matplotlib.pyplot as plt # 导入模块 squares = [1,4,9,16,25] # 指定列表Y坐标为列表中的值,X坐标为列表下标
plt.plot(squares,linewidth=5) # linewidth决定绘制线条的粗细 plt.title('Square Numbers',fontsize=24) # 标题
plt.xlabel('Vaule',fontsize=14)
plt.ylabel('Square of Vaule',fontsize=14) plt.tick_params(axis='both',labelsize=14) # 刻度加粗
plt.show() # 输出图像
绘图:

③ 校正图形(设定X坐标):
import matplotlib.pyplot as plt # 导入模块 squares = [1,4,9,16,25] # 指定列表Y坐标为列表中的值
input_values = [1,2,3,4,5]
plt.plot(input_values,squares,linewidth=5) # linewidth决定绘制线条的粗细 plt.title('Square Numbers',fontsize=24) # 标题
plt.xlabel('Vaule',fontsize=14)
plt.ylabel('Square of Vaule',fontsize=14) plt.tick_params(axis='both',labelsize=14) # 刻度加粗
plt.show() # 输出图像
绘图:

3、绘制散点图
① 创建scatter_sqares.py:
import matplotlib.pyplot as plt
plt.scatter(2,4,s=200) #X坐标2,Y坐标4 S=200 点大小
plt.title('Square Numbers',fontsize=24) # 标题
plt.xlabel('Vaule',fontsize=14)
plt.ylabel('Square of Vaule',fontsize=14)
plt.tick_params(axis='both',labelsize=14) # 刻度加粗
plt.show() # 输出图像
绘图:

② 绘制一系列点:
import matplotlib.pyplot as plt x_values = [1,2,3,4,5] # 指定X轴
y_values = [1,4,9,16,25] # 指定Y轴 plt.scatter(x_values,y_values,s=100) --snip--- plt.show() # 输出图像
绘图

③ 自动计算数据:
import matplotlib.pyplot as plt x_values = list(range(1,1001)) # 指定X轴
y_values = [x**2 for x in x_values] # 指定Y轴 plt.scatter(x_values,y_values,s=1,edgecolors='none') #edgecolors 删除数据点轮廓 plt.title('Square Numbers',fontsize=24) # 标题
plt.xlabel('Vaule',fontsize=14)
plt.ylabel('Square of Vaule',fontsize=14) plt.axis([0,1100,0,1100000]) # 设置坐标取值范围
plt.tick_params(axis='both',labelsize=14) # 刻度加粗
plt.show() # 输出图像
绘图:

④ 自定义颜色
要修改数据点颜色,可向scatter()传递参数c,并将其设置为要使用的颜色的名称
plt.scatter(x_values,y_values,s=1,edgecolors='none',c='red') # 红色
你还可以使用RGB颜色模式自定义颜色,要指定自定义颜色,传入一个元祖,分别表示红色,绿色,蓝色,0~1范围,值越接近0,指定的颜色越深,值越接近1,指定的颜色越浅
plt.scatter(x_values,y_values,s=1,edgecolors='none',c=(0,0,0.8)) # 蓝色
颜色映射-渐变色
import matplotlib.pyplot as plt x_values = list(range(1,1001)) # 指定X轴
y_values = [x**2 for x in x_values] # 指定Y轴 plt.scatter(x_values,y_values,c=y_values,cmap=plt.cm.Blues,s=1,edgecolors='none',) # 从浅蓝色到深蓝色 plt.title('Square Numbers',fontsize=24) # 标题
plt.xlabel('Vaule',fontsize=14)
plt.ylabel('Square of Vaule',fontsize=14) plt.axis([0,1100,0,1100000]) # 设置坐标取值范围
plt.tick_params(axis='both',labelsize=14) # 刻度加粗
plt.show() # 输出图像
绘图:

自动保存图标:
plt.savefig('squares_plot.png',bbox_inches='tight')
4、随机漫步
创建random_walk.py文件:
from random import choice
class RandWalk(object):
def __init__(self,count=5000):
self.count = count
self.x_list = [0]
self.y_list = [0]
def fill_walk(self):
while len(self.x_list) < self.count:
x_step = self.fill_step()
y_step = self.fill_step()
if x_step ==0 or y_step == 0:
continue
next_x = self.x_list[-1] + x_step
next_y = self.y_list[-1] + y_step
self.x_list.append(next_x)
self.y_list.append(next_y)
def fill_step(self):
direction = choice([-1, 1])
distance = choice([2, 4, 6, 8, 10])
return direction*distance
创建rw_visual.py文件:
import matplotlib.pyplot as plt from random_walk import RandWalk rw = RandWalk()
rw.fill_walk()
point_numbers = list(range(rw.count)) plt.scatter(rw.x_list,rw.y_list,c=point_numbers,cmap=plt.cm.Blues,s=1) #颜色由浅转深
plt.show()
绘图:

调整尺寸适合屏幕、隐藏X轴Y轴,绘制起点和终点:
import matplotlib.pyplot as plt from random_walk import RandWalk rw = RandWalk()
rw.fill_walk()
point_numbers = list(range(rw.count))
plt.figure(dpi=128,figsize=(10,6)) # 设置显示图片大小 plt.scatter(rw.x_list,rw.y_list,c=point_numbers,cmap=plt.cm.Blues,s=1) # 颜色由浅转深
plt.scatter(0,0,c='green',edgecolors='none',s=10) # 起始颜色
plt.scatter(rw.x_list[-1],rw.y_list[-1],c='red',edgecolors='none',s=10) # 终点颜色 plt.axes().get_xaxis().set_visible(False) # 隐藏X轴
plt.axes().get_yaxis().set_visible(False) # 隐藏Y轴 plt.show()
绘图:

Python开发【模块】:matplotlib 绘制折线图的更多相关文章
- python使用matplotlib绘制折线图教程
Matplotlib是一个Python工具箱,用于科学计算的数据可视化.借助它,Python可以绘制如Matlab和Octave多种多样的数据图形.下面这篇文章主要介绍了python使用matplot ...
- 【Python】matplotlib绘制折线图
一.绘制简单的折线图 import matplotlib.pyplot as plt squares=[1,4,9,16,25] plt.plot(squares) plt.show() 我们首先导入 ...
- python学习之matplotlib绘制动图(FuncAnimation()参数)
1.函数FuncAnimation(fig,func,frames,init_func,interval,blit)是绘制动图的主要函数,其参数如下: a.fig 绘制动图的画布名称 b.func自定 ...
- 1 matplotlib绘制折线图
from matplotlib import pyplot as plt #设置图形大小 plt.figure(figsize=(20,8),dpi=80) plt.plot(x,y,color=&q ...
- python中matplotlib画折线图实例(坐标轴数字、字符串混搭及标题中文显示)
最近在用python中的matplotlib画折线图,遇到了坐标轴 "数字+刻度" 混合显示.标题中文显示.批量处理等诸多问题.通过学习解决了,来记录下.如有错误或不足之处,望请指 ...
- Python绘制折线图
一.Python绘制折线图 1.1.Python绘制折线图对应代码如下图所示 import matplotlib.pyplot as pltimport numpy as np from pylab ...
- Python pyecharts绘制折线图
一.pyecharts绘制折线图line.add()方法简介 line.add()方法简介 add(name,x_axis,y_axis,is_symbol_show=True, is_smooth= ...
- 【Android开源框架】使用andbase开发框架实现绘制折线图
在Android中,当有绘制折线图的需求时.大多数人使用的AChartEngine,来进行折线图的绘制.AChartEngine图表引擎确实能够实现折线图的功能.除此之外,我们还能够使用andbase ...
- 带着canvas去流浪系列之二 绘制折线图
[摘要] 用canvasAPI实现echarts简易图表 示例代码托管在:http://www.github.com/dashnowords/blogs 一. 任务说明 使用原生canvasAPI绘制 ...
随机推荐
- QTableWidget的表头颜色设置
设置水平和垂直表头的颜色ui->tableWidget->horizontalHeader()->setStyleSheet("QHeaderView::section{b ...
- python3.4连接mysql
参考:http://www.blogjava.net/huyi2006/articles/247966.html 开发环境:win7_x64 + python3.4.3 + mysql5.6.23 准 ...
- 获取pc硬件信息杂记
//Download by http://www.NewXing.com #include "StdAfx.h" #include "RegUtil.h" #i ...
- 勒布朗法则( LeBlanc)
看<代码整洁之道>看到了一个概念:勒布朗法则. 咦?这个不是NBA中的勒布朗·詹姆斯法则,当然NBA中针对一些球星的Bug表现也制定了一系列的法则,如乔丹法则(乔丹太过于强大).奥尼尔法则 ...
- Oracle居然把Java EE的未来押在Rest API上了
然而Lehman并不赞同Rahman对Java EE 9的说法,所以他重申Oracle暂时专注于Java EE 8."我们正在倾全力推出EE 8,现在这是我们主要的关注点," ...
- doDBA 监控用法
https://yq.aliyun.com/articles/67051 doDBA tools是什么 doDBA tools是一个基于控制台的远程监控工具,它不需要在本地/远程系统上安装任何软件,它 ...
- Linux Shell脚本面试25个经典问答
1 Shell脚本是什么.它是必需的吗? 答:一个Shell脚本是一个文本文件,包含一个或多个命令.作为系统管理员,我们经常需要使用多个命令来完成一项任务,我们可以添加这些所有命令在一个文本文件(Sh ...
- Spring------SpringBoot中注解
转载: http://www.tuicool.com/articles/bQnMra
- Java精选笔记_Servlet事件监听器
Servlet事件监听器 概述 在程序开发中,经常需要对某些事件进行监听,如监听鼠标点击事件.监听键盘按下事件等,此时就需要使用事件监听器. 事件监听器用于对程序中发生的事件进行监听,在监听的过程中会 ...
- 【RF库Collections测试】Dictionary Should Not Contain Value
Name:Dictionary Should Not Contain ValueSource:Collections <test library>Arguments:[ dictionar ...