python 数据可视化练习
2017-10-09 21:03
453 查看
针对数据可视化,对
例子来自: 《Python编程从入门到实战》【美】Eric Matthes
测试,如果没有报错,则证明组件包可以正常使用。
输出图像
输出图像
plot()函数将接受对用的
绘制一系列点的方法
设置坐标轴的范围。例如把x轴设置为0~1100 y轴设置为0~1100000
两种设置颜色的方法
我们将参数c设置成了一个y值列表,并使用参数cmap告诉pyplot使用哪个颜色映射。这些代
码将y值较小的点显示为浅蓝色,并将y值较大的点显示为深蓝色。集体样式如下:
第二个实参指定将图表多余的空白区域裁剪掉
突出绘制起点和终点。
结果
结果
matplotlib、
pygal这两个包进行简单是使用,尝试利用python绘制折线图、散点图、产生随机漫步数据、模拟投掷骰子并对结果进行统计。
例子来自: 《Python编程从入门到实战》【美】Eric Matthes
安装
如果使用anaconda,则matplotlib已经安装。若果没有可以使用pip命令安装。这里不做过多赘述。
import matplotlib
测试,如果没有报错,则证明组件包可以正常使用。
使用
plot()
简单使用
import matplotlib.pyplot as plt squares = [1,4,8,16,25] plt.plot(squares) plt.show()
输出图像
修饰图表
import matplotlib.pyplot as plt squares = [1,4,8,16,25] plt.plot(squares,linewidth=5) # 设置绘制的线条的粗细 #设置图表标题 坐标轴 plt.title("Square Numbers", fontsize=24) # 图表的标题 plt.xlabel("Value", fontsize=14) plt.ylabel("Square of Value", fontsize=14) # 设置刻度标记的大小 plt.tick_params(axis='both', labelsize=14) #设置刻度样式 plt.show()
输出图像
对应 X Y 坐标
input_values = [1, 2, 3, 4, 5] squares = [1,4,8,16,25] plt.plot(input_values,squares,linewidth=5)
plot()函数将接受对用的
xy值用于画图。
scatter() 绘制散点图
import matplotlib.pyplot as plt plt.scatter(2, 4, s=200) # 设置图表标题并给坐标轴加上标签 plt.title("Square Numbers", fontsize=24) plt.xlabel("Value", fontsize=14) plt.ylabel("Square of Value", fontsize=14) # 设置刻度标记的大小 plt.tick_params(axis='both', which='major', labelsize=14) plt.show()
x_values = [1, 2, 3, 4, 5] y_values = [1, 4, 9, 16, 25] plt.scatter(x_values, y_values, s=100)
绘制一系列点的方法
典型函数
坐标轴范围设置
plt.axis([0, 1100, 0, 1100000])
设置坐标轴的范围。例如把x轴设置为0~1100 y轴设置为0~1100000
设置颜色
plt.scatter(x_values, y_values, c='red', edgecolor='none', s=40) plt.scatter(x_values, y_values, c=(0, 0, 0.8), edgecolor='none', s=40)
两种设置颜色的方法
颜色渐变
import matplotlib.pyplot as plt x_values = list(range(1,1001)) y_values = [x**2 for x in x_values] plt.scatter(x_values, y_values, c=y_values, cmap=plt.cm.Blues, edgecolor='none', s=40) plt.axis([0, 1100,-200, 1100000]) plt.show()
我们将参数c设置成了一个y值列表,并使用参数cmap告诉pyplot使用哪个颜色映射。这些代
码将y值较小的点显示为浅蓝色,并将y值较大的点显示为深蓝色。集体样式如下:
自动保存图表
plt.savefig('squares_plot.png', bbox_inches='tight')
第二个实参指定将图表多余的空白区域裁剪掉
随机漫步
编写类
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] def fill_walk(self): """计算随机漫步包含的点""" while len (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 if x_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)
实例化对象并使用
import matplotlib.pyplot as plt from random_walk import RandomWalk rw = RandomWalk() rw.fill_walk() 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=15) plt.show()
结果
突出绘制起点和终点。
# 突出起点和终点 plt.scatter(0,0,c ='green',edgecolors = 'none',s=100) plt.scatter(rw.x_values[-1],rw.y_values[-1],c='red',edgecolor = 'none',s =100)
模拟骰子 结果可视化
模拟骰子
from random import randint class Die(): """表示一个骰子的类""" def __init__(self,num_sides=6): """默认是6个面""" self.num_sides = num_sides def roll(self): """返回一个1到最大面数之间的随机数""" return randint(1,self.num_sides)
产生1000次结果并绘制条形图
from die import Die import pygal # 创建一个D6 die = Die() results = [] for roll_num in range(1000): result = die.roll() results.append(result) # 分析结果 frequencies = [] for value in range(1,die.num_sides+1): frequency = results.count(value) frequencies.append(frequency) # print(frequencies) # 对结果进行可视化 hist = pygal.Bar() hist.title = "Result of rolling one D6 1000 times." hist.x_labels = ['1','2','3','4','5','6'] hist.x_title = "Result" hist.y_title = "Frequency of Result" hist.add('D6',frequencies) hist.render_to_file('die_visual.svg')
结果
投掷2个骰子
from die import Die import pygal die_1 = Die() die_2 = Die() results = [] for roll_num in range(1000): result = die_1.roll() + die_2.roll() results.append(result) # 分析结果 frequencies = [] max_result = die_1.num_sides+die_2.num_sides for value in range(2,max_result+1): frequency = results.count(value) frequencies.append(frequency) # print(frequencies) # 对结果进行可视化 hist = pygal.Bar() hist.title = "Result of rolling two D6 1000 times." hist.x_labels = ['2','3','4','5','6','7','8','9','10','11','12'] hist.x_title = "Result" hist.y_title = "Frequency of Result" hist.add('D6 + D6', frequencies) hist.render_to_file('dice_visual.svg')
结果
相关文章推荐
- python 数据可视化练习(2)
- PYTHON可视化:了解数据
- python的另外一个数据可视化包 seaborn
- python数据挖掘课程 十一.Pandas、Matplotlib结合SQL语句可视化分析
- 使用Python的netCDF4和matplotlib.basemap包进行气象数据的可视化
- Python数据分析:手把手教你用Pandas生成可视化图表
- Caffe学习系列(13):数据可视化环境(python接口)配置 jupyter notebook
- Caffe学习系列(13):数据可视化环境(python接口)配置
- python-框架-网页爬虫-文本处理-科学计算-可视化-机器学习-数据挖掘-深度学习
- python 金融应用(三)数据可视化
- python-数据可视化
- 利用Python对NBA SportUV数据进行可视化及分析
- 在Python中对MySQL中的数据进行可视化
- caffe:利用python分类,并可视化模型参数、数据
- 7种python 可视化 库的比较(针对同一数据画图)
- Caffe学习系列(11):数据可视化环境(python接口)配置
- 某职员在会议上用五种方法实现Python数据可视化,秀了老总一脸!
- python 数据可视化 matplotlib学习二 : 对折线图使用颜色映射
- python的数据可视化 graphviz pydot安装配置(win10)