《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

运行结果:

最新文章

  1. [原创]MYSQL的简单入门
  2. SOAPUI使用教程-REST功能测试
  3. vs2013 手动生成webservice代理类wsdl
  4. BZOJ4421 : [Cerc2015] Digit Division
  5. [转载] 【每周推荐阅读】C-Store:列式存储数据库
  6. linux笔记:linux常用命令-网络命令
  7. java-源码下载
  8. 解决关于jquery中$.get()方法总是报“HierarchyRequestError: Node cannot be inserted at the specified point in the hierarchy”错的方法
  9. Failed to convert value of type &#39;java.lang.String&#39; to required type &#39;java.time.LocalDate&#39;;
  10. CM+CDH大数据平台
  11. redis 哨兵(sentinel)
  12. 【Anaconda】:科学计算的Python发行版
  13. 多线程编程——ANR
  14. python模块之HTMLParser之穆雪峰的案例(理解其用法原理)
  15. Python(七)之OS模块
  16. C#连接操作MySQL数据库详细步骤 帮助类等(二次改进版)
  17. CentOS 安装 Hadoop
  18. SEO优化:WordPress发布文章主动推送到百度,加快收录保护原创
  19. JZYZOJ 1542 [haoi2015]str 矩阵乘法 dp
  20. 用函数式编程,从0开发3D引擎和编辑器(一)

热门文章

  1. SIGBUS 和 SIGSEGV
  2. Linux源码安装过程中选项—prefix的作用
  3. 如何设置python的编码格式为utf-8
  4. 如何使用VMWare共享Win7中的文件夹,对应Linux中的哪个目录下面?
  5. PHP——通过下拉列表选择时间(转)
  6. servlet里面拿到common.property的属性
  7. 什么是 end-to-end 神经网络?——知乎解答
  8. 网络I/O:Socket→RMI
  9. db2 reorg pending
  10. AOSP5.0换8G eMMC不能开机问题