python-绘图matplotlib
《Python编程:从入门到实践》读书笔记
1.使用plot()绘制简单的折线图
import matplotlib.pyplot as plt va=[1,2,3,4,5]
sq=[1,4,9,16,25]
plt.plot(va,sq,linewidth=1)
plt.title("square",fontsize=24)
plt.xlabel("value",fontsize=14)
plt.ylabel("square of value",fontsize=14) plt.tick_params(axis='both',labelsize=14)#设置刻度的样式,并设置标度字体大小。 plt.show()
//其中包括加title,加坐标描述,设置线段粗细,xy坐标轴均有数据,
运行结果:
2.使用scatter()绘制散点图
import matplotlib.pyplot as plt #plt.scatter(2,4,s=20)#s设置点的尺寸大小
xv=[1,2,3,4,5]
yv=[1,4,9,16,25]
plt.scatter(xv,yv)#将两个列表作为参数 plt.title("Square")
plt.xlabel("number")
plt.ylabel("square")
plt.tick_params(axis="both",which="major") plt.show()
运行结果:
对以上进行了改进,对横轴、纵轴的数据使用自动计算的方式:
import matplotlib.pyplot as plt #plt.scatter(2,4,s=20)#s设置点的尺寸szie大小 #使用代码计算数据
xv=list(range(1,1001))
yv=[x**2 for x in xv]
plt.scatter(xv,yv,s=10) plt.title("Square")
plt.xlabel("number")
plt.ylabel("square")
plt.tick_params(axis="both",which="major") plt.show()
运行结果:(y轴挤不见了)
对散点图中各个点的操作:
plt.scatter(xv,yv,c='red',edgecolor='none',s=10)
plt.scatter(xv,yv,c=(0,0,0.9),edgecolor='none',s=10)
1.其中edgecolor是防止点之间的粘连,设置为none,
2. 设置点的颜色有两种方法:直接给c赋值颜色;给c传入一个rgb列表,值都在0-1之间。值越小 颜色越深。
有趣的点来了:
使用颜色映射,可以突出数据的规律,比如让较浅颜色显示较小值,较深颜色显示较大值:
import matplotlib.pyplot as plt #使用代码计算数据
xv=list(range(1,1001))
yv=[x**2 for x in xv]
plt.scatter(xv,yv,c=yv,cmap=plt.cm.Blues,s=10)
其中:c直接赋值为y轴的值, cmap告诉pyplot使用哪个颜色映射:
3.画出随机漫步图表
piandao.py:
from random import choice class RandNum():
def __init__(self,ct=5000):
self.ct=ct
self.xv=[0]#这里一定不能初始化为[],不然在下面函数的while循环里,Append就会报错,因为
self.yv=[0]#一开始这两个列表都为空。 def rd(self):
""""选择方向"""
while len(self.xv)<self.ct:
xdir=choice([-1,1])#choice函数会从list中选择一个数
xdis=choice([0,1,3,2,4])
x=xdir*xdis ydir=choice([-1,1])
ydis=choice([0,1,2,3,4])
y=ydir*ydis
if x==0 and y==0:#不允许踏步不前
continue
# self.xv.append(self.xv[-1] + x)
# self.yv.append(self.yv[-1] + y) xnext=self.xv[-1] + x
ynext=self.yv[-1] + y
self.xv.append(xnext)
self.yv.append(ynext)
给出了rd函数,产生随机数对,放入坐标数据列表中。
调用的代码:
import matplotlib.pyplot as plt
from piandao import RandNum #这里是from...import... 并且不需要加.py后缀 while True:
rd = RandNum()
rd.rd()
# 画图:
ptn=list(range(rd.ct))#给出列表,作为颜色变化。
plt.scatter(rd.xv, rd.yv,c=ptn,cmap=plt.cm.Blues) plt.scatter(0,0,c='red')#重新画出起点和终点
plt.scatter(rd.xv[-1],rd.yv[-1],c='green') plt.axes().get_xaxis().set_visible(False)#设置坐标轴不显示
plt.axes().get_yaxis().set_visible(False) plt.show() whe=input("continue?")#通过while循环让用户控制是否结束
if whe=='y':
break
运行结果:
python-绘图matplotlib的更多相关文章
- Python绘图matplotlib
转自http://blog.csdn.net/ywjun0919/article/details/8692018 Python图表绘制:matplotlib绘图库入门 matplotlib 是pyth ...
- python绘图 matplotlib教程
mark一个很好的python绘图教程 https://liam0205.me/2014/09/11/matplotlib-tutorial-zh-cn/
- python之matplotlib绘图基础
Python之matplotlib基础 matplotlib是Python优秀的数据可视化第三方库 matplotlib库的效果可参考 http://matplotlib.org/gallery.ht ...
- python绘图:matplotlib和pandas的应用
在进行数据分析时,绘图是必不可少的模式探索方式.用Python进行数据分析时,matplotlib和pandas是最常用到的两个库.1.matplotlib库的应用准备工作如下:打开ipython,输 ...
- python 利用matplotlib中imshow()函数绘图
matplotlib 是python最著名的2D绘图库,它提供了一整套和matlab相似的命令API,十分适合交互式地进行制图.而且也可以方便地将它作为绘图控件,嵌入GUI应用程序中.通过简单的绘图语 ...
- 【python笔记】使用matplotlib,pylab进行python绘图
一提到python绘图,matplotlib是不得不提的python最著名的绘图库,它里面包含了类似matlab的一整套绘图的API.因此,作为想要学习python绘图的童鞋们就得在自己的python ...
- 使用 Python 的 matplotlib 绘图库进行绘图
matplotlib 是 Python 最著名的绘图库,它提供了一整套和matlab相似的命令API,十分适合交互式地行制图.而且也可以方便地将它作为绘图控件,嵌入GUI应用程序中. 1 使用 Ma ...
- python 中matplotlib 绘图
python 中matplotlib 绘图 数学建模需要,对于绘图进行简单学习 matpoltlib之类的包安装建议之间用anaconda 绘制一条y=x^2的曲线 #比如我们要绘制一条y=x^2的曲 ...
- Python绘图与可视化
Python有很多可视化工具,本篇只介绍Matplotlib. Matplotlib是一种2D的绘图库,它可以支持硬拷贝和跨系统的交互,它可以在Python脚本.IPython的交互环境下.Web应用 ...
- Python绘图工具Plotly的简单使用
1.Plotly被称为史上最好的绘图工具之一,为了更好的展示金融数据的复杂性. Plotly的官方网站为:https://plot.ly/ python量化的关键是金融数据可视化,无论是传统的K线图, ...
随机推荐
- 跟着百度学PHP[17]-PHP扩展CURL的POST传输数据
如果是GET的话就不必那么多设置.但是基本需要用到POST就需要用到以下的几个设置选项. <?php $username = "admin"; $password = &qu ...
- Python-Scrapy创建第一个项目
创建项目 在开始爬取之前,您必须创建一个新的Scrapy项目.进入您打算存储代码的目录中,运行下列命令: scrapy startproject tutorial 1 该命令行将会创建包含下列内容的t ...
- HIBERNATE与 MYBATIS的对比,在这里做一下总结
我是一名java开发人员,hibernate以及mybatis都有过学习,在java面试中也被提及问道过,在项目实践中也应用过,现在对hibernate和mybatis做一下对比,便于大家更好的理解和 ...
- 使用AllocConsole()添加调试用控制台
AllocConsole 函数 为调用进程分配一个新的控制台. 使用步骤: 1. AllocConsole(); //分配控制台 2. HANDLE g_hOutput=GetStdHandle( ...
- C++ 抽象类二(抽象类的基本语法)
//抽象类的基本语法 #include<iostream> using namespace std; /* 有关多继承的说明 被实际开发经验抛弃的多继承 工程开发中真正意义上的多继承是几乎 ...
- php ajax dom---动态增加
js代码 <script type="text/javascript"> $(document).ready(function(){ $("#talk_sen ...
- windows server 服务器添加免费域名证书的方法(Let's Encrypt)
在 windows server 服务器上可以通过 win-acme工具添加ssl 1.首先下载工具 https://github.com/PKISharp/win-acme/releases 最新版 ...
- Java入门 第一季第六章 数组
这是我学习慕课网Java课程的笔记,原视频链接为:http://www.imooc.com/learn/85 6-1什么是数组 数组中的元素都能够通过下标来訪问.下标从 0 開始.比如,能够通过 sc ...
- Amazon【EC2】如何启动一个新的EC2实例
1.1 控制台可直接搜索ec2 1.2 创建实例 aws没有新建实例这个说法,新建就是启动实例 1.3 选择镜像 在搜索框中搜索自己想要的镜像.这里有收费的也有免费的 1.4 选择实例类型 选择自己想 ...
- Maven使用deploy上传jar包到远程库 以Oracle驱动为例
一.首先要得到Oracle JDBC Driver 1.通过Oracle官方网站下载相应版本:http://www.oracle.com/technetwork/database/features/j ...