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绘制 ...
随机推荐
- jQuery-处理css样式
1.css方法 获取匹配元素集合中的第一个元素的样式属性的值 或 设置每个匹配元素的一个或多个CSS属性 1)获取并设置单个css值 jQuery对象.css('css属性'); jQuery对象.c ...
- jquery注册文本框获取焦点清空,失去焦点赋值的简单实例
在我们开发过程中特别是用户注册时会有一个效果,就是文本框获取焦点清空提示,如果用户没有输入信息失去焦点赋值上我们的提示语. <html> <head> <meta h ...
- Unity5.5+easytouch5双摇杆控制角色移动
第一步:新建两个Joystick,分别改名LeftJoyStick和RightJoyStick 在LeftJoyStick的ETC Joystick-Axes properties中的Horizont ...
- 墨卡托投影, GPS 坐标转像素, GPS 坐标转距离
Before: 1. 研究的需要, 在 google map 上爬取了一些的静态卫星地图图片,每张图片的像素为 256*256 2. 通过 photshop 将这些地图碎片手动拼成了地图, 地图只是覆 ...
- MySQL性能优化(六)-- using filesort,in和exists,慢查询,mysqldumpslow
一.order by产生using filesort详解 1.首先建表和索引(以下使用的sql版本是5.5.54) /*课程表*/ create table course( id int primar ...
- pow()
pow() 如果接收两个参数,如 pow(x, y),则结果相当于 x**y,也就是 x 的 y 次方pow() 如果接收三个参数,如 pow(x, y, z),则结果相当于 (x**y) % z,也 ...
- 用Broadcast Receiver刷新数据(二)
采用消息发布/订阅的一个很大的优点就是代码的简洁性,并且能够有效地降低消息发布者和订阅者之间的耦合度.举个例子,比如有两个界面,ActivityA和ActivityB,从ActivityA界面跳转到A ...
- Android SDK更新下载失败以及Studio首次安装取消自动下载SDK
这是因为,此时Android Studio会去获取 android sdk 组件信息,这个过程相当慢,还经常加载失败,导致Android Studio启动不起开. 解决办法: 不去获取android ...
- 使用vue-cli结合express获取mongodb里面的数据
最近一直在看node有关的内容,空闲时间做了一个小小的爬虫,用于爬取电影天堂的数据然后写到mongodb里面,代码地址:https://github.com/fangming666/dianyingt ...
- AFNetworking 上传文件
本文转载至 http://blog.csdn.net/hmt20130412/article/details/36487055 文件上传AFNetworking @第一种:我的 #pragma mar ...