《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的更多相关文章

  1. Python绘图matplotlib

    转自http://blog.csdn.net/ywjun0919/article/details/8692018 Python图表绘制:matplotlib绘图库入门 matplotlib 是pyth ...

  2. python绘图 matplotlib教程

    mark一个很好的python绘图教程 https://liam0205.me/2014/09/11/matplotlib-tutorial-zh-cn/

  3. python之matplotlib绘图基础

    Python之matplotlib基础 matplotlib是Python优秀的数据可视化第三方库 matplotlib库的效果可参考 http://matplotlib.org/gallery.ht ...

  4. python绘图:matplotlib和pandas的应用

    在进行数据分析时,绘图是必不可少的模式探索方式.用Python进行数据分析时,matplotlib和pandas是最常用到的两个库.1.matplotlib库的应用准备工作如下:打开ipython,输 ...

  5. python 利用matplotlib中imshow()函数绘图

    matplotlib 是python最著名的2D绘图库,它提供了一整套和matlab相似的命令API,十分适合交互式地进行制图.而且也可以方便地将它作为绘图控件,嵌入GUI应用程序中.通过简单的绘图语 ...

  6. 【python笔记】使用matplotlib,pylab进行python绘图

    一提到python绘图,matplotlib是不得不提的python最著名的绘图库,它里面包含了类似matlab的一整套绘图的API.因此,作为想要学习python绘图的童鞋们就得在自己的python ...

  7. 使用 Python 的 matplotlib 绘图库进行绘图

    matplotlib 是 Python 最著名的绘图库,它提供了一整套和matlab相似的命令API,十分适合交互式地行制图.而且也可以方便地将它作为绘图控件,嵌入GUI应用程序中. 1  使用 Ma ...

  8. python 中matplotlib 绘图

    python 中matplotlib 绘图 数学建模需要,对于绘图进行简单学习 matpoltlib之类的包安装建议之间用anaconda 绘制一条y=x^2的曲线 #比如我们要绘制一条y=x^2的曲 ...

  9. Python绘图与可视化

    Python有很多可视化工具,本篇只介绍Matplotlib. Matplotlib是一种2D的绘图库,它可以支持硬拷贝和跨系统的交互,它可以在Python脚本.IPython的交互环境下.Web应用 ...

  10. Python绘图工具Plotly的简单使用

    1.Plotly被称为史上最好的绘图工具之一,为了更好的展示金融数据的复杂性. Plotly的官方网站为:https://plot.ly/ python量化的关键是金融数据可视化,无论是传统的K线图, ...

随机推荐

  1. hbase练习题

    -- 配置环境变量,因为在hbase中有的地方可能用到了环境变量-- bin/start-hbase.sh-- bin/hbase shell-- 访问http://mini0:16010/ 可以看浏 ...

  2. Docker是用来干什么的?【快速入门】

    Docker从去年开始不仅能在Linux下运行 ,还支持windows.osX等主流系统. 下面的例子我自己经常使用,当然你有更好的案例也可以分享给我. 尝试新软件 对开发者而言,每天会催生出的各式各 ...

  3. freemarker 超出字符用省略号表示

    <#if x.content?length lt 200> ${x.content} <#else> ${x.content[0..201]}... </#if>

  4. Sql server 打不开了,无法识别的配置节 system.serviceModel 解决方案

    异常描述: System.Configuration.ConfigurationErrorsException: 配置系统未能初始化 ---> System.Configuration.Conf ...

  5. 对Linux命令进一步学习

    root@wuheng-virtual-machine:/home/wuheng# ls -ltotal 44drwxr-xr-x 2 wuheng wuheng 4096 Mar  3 01:30 ...

  6. (转)Java NIO框架

    java nio系列文章,转自:http://ifeve.com/overview/ java nio selector深度解析1:http://blog.csdn.net/haoel/article ...

  7. poj 2531(dfs)

    题目链接:http://poj.org/problem?id=2531 思路:由于N才20,可以dfs爆搞,枚举所有的情况,复杂度为2^(n). #include<iostream> #i ...

  8. SurvivalShooter学习笔记(四.敌人攻击)

    此案例中,敌人始终朝着玩家移动 到达攻击玩家范围时(身上的大的触发器被玩家触发时(敌人靠近玩家,当身上的触发器被触发,且对象是玩家时条件达成)) 隔一个时间端,打击玩家一下,对玩家造成伤害,玩家掉血, ...

  9. iOS开源库–最全的整理

    本文转载至 http://www.code4blog.com/archives/505 youtube下载神器:https://github.com/rg3/youtube-dl我擦咧vim插件:ht ...

  10. [hihoCoder] Trie树

    This is a application of the Trie data structure, with minor extension. The critical part in this pr ...