生成数据
绘制折线图
import matplotlib.pyplot as plt
input = [1, 2, 3, 4, 5, 6, 7]
s = [1, 2, 3, 67, 8, 20, 9]
plt.plot(input, s, linewidth=1) # 绘制图形
plt.title("here is title", fontsize=24) # 图像标题
plt.xlabel("value", fontsize=14) # x轴说明
plt.ylabel("values", fontsize=14)
plt.tick_params(axis='both', labelsize=14) # 设置刻度
plt.show() # 打开matplotlib查看器,显示绘制的图形
绘制散点图
import matplotlib.pyplot as plt
input = [1, 2, 3, 4, 5, 6, 7]
s = [1, 2, 3, 67, 8, 20, 9]
plt.scatter(input, s, c='red', s=200) # c自定义颜色,s设置点的尺寸
# plt.scatter(input, s, c=(0,0.8,0), s=40, edgecolors='none') # RGB指定颜色
plt.title("here is title", fontsize=24) # 图像标题
plt.xlabel("value", fontsize=14) # x轴说明
plt.ylabel("values", fontsize=14)
plt.tick_params(axis='both', which='major', labelsize=14) # 设置刻度
plt.savefig('filename') # 自动保存图片,在程序的同级目录下,文件名filename
plt.show()
随机漫步
生成随机漫步坐标:
from random import choice
class RandWalk():
"""定义一个随机漫步类"""
def __init__(self, walk_num=5000):
self.walk_num = walk_num
self.x = [0]
self.y = [0]
def walk(self):
while len(self.x) < self.walk_num:
dx = choice([-1, 1])
distance_x = choice([0, 1, 2, 3, 4])
delta_x = dx * distance_x
dy = choice([-1, 1])
distance_y = choice([0, 1, 2, 3, 4])
delta_y = dy * distance_y
if delta_y==0 and delta_x==0:
continue
self.x.append(self.x[-1] + delta_x)
self.y.append(self.y[-1] + delta_y)
绘制随机漫步散点图:
import matplotlib.pyplot as plt
from randwalk import RandWalk
rand_walk = RandWalk()
rand_walk.walk()
plt.figure(dpi=1920, figsize=(10, 6)) # 分辨率,调整绘图窗口的尺寸
piont_num = list(range(rand_walk.walk_num))
plt.scatter(rand_walk.x[0], rand_walk.y[0], c='red', s=50)
plt.scatter(rand_walk.x[-1], rand_walk.y[-1], c='green', s=50)
plt.scatter(rand_walk.x, rand_walk.y, c=piont_num, cmap=plt.cm.Blues, s=1)
# 以蓝色渐变显示随机漫步的顺序
plt.savefig('filename') # 自动保存图片,在程序的同级目录下,文件名filename
# plt.show()
网页直方图
直方图数据:
from random import randint
class Die():
"""定义一个模拟掷色子的类"""
def __init__(self, num=6):
"""色子默认六面"""
self.num = num
def roll(self):
"""随机掷色子"""
return randint(1,self.num)
生成直方图:
from die import Die
import pygal
die = Die()
result = []
for r in range(1000):
result.append(die.roll())
frequency = []
for i in range(1, die.num+1):
frequency.append(result.count(i))
print(frequency)
hist = pygal.Bar()
hist.title = "Result"
hist.x_labels = ['1', '2', '3', '4', '5', '6']
hist.x_title = 'result'
hist.y_title = 'value'
hist.add('Die6', frequency) # 将一系列值添加进图表,并指定标签
hist.render_to_file('die.svg') # 将图表渲染为一个svg文件
处理csv文件格式
数据作为一系列以逗号分隔的值写入文件,这样的文件就称为CSV文件。
import csv
import matplotlib.pyplot as plt
"""数据作为一系列以逗号分隔的值写入文件,这样的文件就称为CSV文件"""
filename = 'sitka_weather_2014.csv'
with open(filename) as f:
read = csv.reader(f)
first_cow = next(read) # 取出第一行
# for i, value in enumerate(first_cow):
# print(i, value)
# 将第二列数据读入一个列表中
high = []
low = []
for v in read: # 每一行
high.append(int(v[1])) #取第二列
low.append(int(v[3]))
plt.figure(figsize=(10, 6))
plt.plot(high, c='red') # s设置点的尺寸
plt.plot(low, c='green')
plt.title("here is title", fontsize=24) # 图像标题
plt.xlabel("value", fontsize=14) # x轴说明
plt.ylabel("values", fontsize=14)
plt.tick_params(axis='both', which='major', labelsize=14) # 设置刻度
plt.show()
API
https://api.github.com/search/repositories?q=language:python&sort=stars
https://api.github.com/
将请求发送到GitHub网站中响应API的部分;search/repositories
让API搜索GitHub上所有仓库;repositories
后面的问号指出我们要传一个实参。q表示查询,等号让我们能够开始指定查询。language:python
,指出我们只想获取主要语言为python的仓库的信息。最后&sort=stars
指定项目按获得的星级排序。