python中matplotlib的使用技巧
代码:
创建Mpl_squares.py
#coding:GBK
import matplotlib.pyplot as plt
input_values = [1,2,3,4,5]#input_values设置图表x,y起始值为0
squares = [1,4,9,16,25]
plt.plot(input_values,squares,linewidth =5)#linewidth是设置线条的粗细
plt.title("The fitstpic",fontsize = 14)#title设置图表的标题和字体大小
plt.ylabel("Squard ofValue",fontsize = 14)#ylabel设置图表的左标题和字体大小
#设置刻度标记的大小
plt.tick_params(axis='both',labelsize =14)#tick_params设置坐标刻度字体的大小
for i in range(len(input_values)):
plt.scatter(input_values[i],squares[i])
plt.show()
结果:
创建Scatter_squares.py
#coding:GBK
import matplotlib.pyplot as plt
#x_values = [1,2,3,4,5]
#y_values = [1,4,9,16,25]
x_values = list(range(1,1001))
y_values = [x**2 for x in x_values]
#plt.scatter(x_values,y_values, c =(0,0,0.8), edgecolor='none', s = 40)
plt.scatter(x_values,y_values, c =y_values, cmap = plt.cm.Blues,
edgecolor='none',s = 40)
#设置图表标题并给坐标轴加上标签
plt.title("SquareNumbers",fontsize = 24)
plt.xlabel("Value",fontsize = 14)
plt.ylabel("Square of Value" ,fontsize = 14)
#设置刻度标记的大小
plt.tick_params(axis = 'both' , which ='major', labelsize = 14)
#设置每个坐标轴的取值范围
plt.axis([0,1100,0,1100000])
plt.show()
plt.savefig('squares_plot.png',bbox_inches='tight')
结果:
创建类:
Random_walk.py
#coding:GBK
from random import choice
class RandomWalk():
"""一个生成随机漫步数据的类"""
def__init__(self,num_points = 5000):
"""初始化随机漫步的属性"""
self.num_points= num_points
#所有随机漫步都始于(0,0)
self.x_values=[0]
self.y_values=[0]
deffill_walk(self):
"""计算随机漫步包含的所有点"""
#不断漫步,知道列表达到指定的长度
whilelen(self.x_values) < self.num_points:
#决定前进方向以及沿这个方向前进的距离
x_direction= choice([1,-1])
x_distance= choice([0,1,2,3,4])
x_step= x_direction * x_distance
y_direction= choice([1,-1])
y_distance= choice([0,1,2,3,4])
y_step= y_direction * y_distance
#拒绝原地踏步
ifx_step == 0 and y_step == 0:
continue
#计算下一个点的x 和 y 值
next_x= self.x_values[-1] + x_step
next_y= self.y_values[-1] + y_step
self.x_values.append(next_x)
self.y_values.append(next_y)
创建rw_visual.py
#coding:GBK
import matplotlib.pyplot as plt
from random_walk import RandomWalk
#只要程序处于活动状态,就不断地模拟随机漫步
while True:
#创建一个RandomWalk实例,并将其包含的点都绘制出来
rw= RandomWalk(5000)
rw.fill_walk()
#设置绘图窗口的尺寸
plt.figure(dpi=128,figsize=(10,6))
point_numbers= list(range(rw.num_points))
plt.scatter(rw.x_values,rw.y_values,c = point_numbers,cmap=plt.cm.Blues,
edgecolor='none',s=1)
#突出起点和终点
plt.scatter(0,0,c='green',edgecolors='none',s=100)
plt.scatter(rw.x_values[-1],rw.y_values[-1],c='red',edgecolors='none',
s=100)
plt.axes().get_xaxis().set_visible(False)
plt.axes().get_yaxis().set_visible(False)
plt.show()
keep_running= input("Make another walk? (y/n): ")
ifkeep_running == 'n':
break
结果: