Python数据可视化编程实战-1

Posted cucu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python数据可视化编程实战-1相关的知识,希望对你有一定的参考价值。

第1章 

有两种方式更改运行参数:使用参数字典(rcparams)或调用matplotlib.rc()命令。第一种方式中,可以通过 rcparams字典访问并修改所有已经加载的配置项;第二种方式中,可以通过matplotlib.rc()传入属性的关键字元组来修改配置项。

 使用 matplotlib. rcparams的例子。
import matplotlib as mpl
mpl. rcparams [ ‘lines.linewidth‘] = 2
mpl. rcparams [‘lines color‘] = ‘r‘

使用 matplotlib.rc()函数调用的例子。
import matplotlib as mpl
mpl. rc(‘lines‘,  linewidth = 2, color= ‘r‘)

示例:

 import matplotlib. pyplot as plt
import numpy as np

t = np. arange(0.0,1.0,0.01)
s=np.sin(2 *np.pi *t)
# 设置线为红色
plt.rcParams [lines.color] = r
plt.plot(t, s)

c=np.sin(2 *np.pi *t)
# 设置线的宽度(3有无引号均可)
plt. rcParams[lines.linewidth] = 3
plt.plot(t,c)
plt.show()

技术图片

 

1.9为项目设置参数

  配置文件包括以下配置项:

◆ axes:设置坐标轴边界和表面的颜色、坐标刻度值大小和网格的显示。
◆ backend:设置目标输出 TkAgg和 GTKAgg。
◆ figure:控制dpi、边界颜色、图形大小和子区(subplot)设置。
◆ font:字体集( font family)、字体大小和样式设置。
◆ grid:设置网格颜色和线型。
◆ legend:设置图例和其中文本的显示。
◆ line:设置线条(颜色、线型、宽度等)和标记。
◆ patch: 是填充2D空间的图形对象,如多边形和圆。控制线宽、颜色和抗锯齿设置等。
◆ savefig:可以对保存的图形进行单独设置。例如,设置渲染的文件的背景为白色。
◆ text:设置字体颜色、文本解析(纯文本或 latex标记)等。
◆ verbose:设置 matplotlib在执行期间信息输出,如 silent、 helpful、 debug和debug- annoying。
◆ xticks和 yticks:为x、y轴的主刻度和次刻度设置颜色、大小、方向,以及标签大小。

 

第2章 了解数据

2.2 csv文件

import csv

filename = "E:\\python_data_plot\\ch02\\ch02_data.csv"
data = []
# 打开文件
with open(filename) as f:
    reader = csv.reader(f)
    header = next(reader)  # 读取文件头

    for row in reader:
        temp = int(row[1])  # 读取第二列的数据,原格式为字符串型,化为整型
        data.append(row[1])   # 存入数组
print(data)

2.3 读取excel文件

xlrd模块使用的对象模型:每一个工作簿workbook中包含多个工作表sheet,每个工作表中有多个单元格对象cell,我们从单元格中将值提取出来。

主要方法:

sheet.row_values(1)    #读取第2行的值
sheet.cell(1, 1).value   #读取特定单元格(第2行第2列)的值

import xlrd

#读取excel文件一列数据
def excel():
    # 1.打开Excel文件
    wb = xlrd.open_workbook(E:\\python_data_plot\\ch02\\MK.xlsx)
    # 2.通过excel表格名称(rank)获取工作表
    sheet = wb.sheet_by_name(Sheet1)  
    dat = []  # 创建空list
    # 根据行数(nrows)和列数(ncols)读取单元格的内容
    for a in range(1, sheet.nrows):  # 从第二行开始,循环读取表格内容(每次读取一行数据)
        cells = sheet.row_values(a)  # 每行数据赋值给单元格cells
        data = int(cells[0])  # 因为表内可能存在多列数据,0代表第一列数据,1代表第二列,以此类推
        dat.append(data)  # 把每次循环读取的数据插入到list      
  return dat
a = excel()  #返回整个函数的值
print(a)

2.10 读取大块文件数据

对于数据特别大的数据,如包含几千万行数据的,处理起来很困难。这类文件不能一次性把文件数据读取进内存中,而是分很多次。

这一类读取文件的函数有两个参数:chunksize,iterator

1)指定CHUNKSIZE分块读取文件

read_csv 和  read_table 有一个chunksize参数,用以指定一个块大小(每次读取多少行),返回一个可迭代的  TextFileReader 对象。

table=pd.read_table(path+kuaishou.txt,sep=	,chunksize=1000000)

2)指迭代=真

reader = pd.read_table(tmp.sv, sep=	, iterator=True)

 2020-06-28 18:11:12


 

2.13  生成可控的随机数据集合

标准差:表示个体和群体之间的差异。如果差异越大,标准差会越大;如果所有个体实验在整组范围内基本相同,标准差会比较小。

方差:标准差的平方。

总体

样本:总体的子集。

主要用python的random模块生成数据,其主要用法如下:

import random

print(random.randint(1, 10))        # 产生 1 到 10 的一个整数型随机数
print(random.random())             # 产生 0 到 1 之间的随机浮点数
print(random.uniform(1.1, 5.4))     # 产生  1.1 到 5.4 之间的随机浮点数,区间可以不是整数
print(random.choice(tomorrow))   # 从序列中随机选取一个元素
print(random.randrange(1, 100, 2))   # 生成从1到100的步长为2的随机整数(如得到33,33-1=32,为2的倍数)
print(random.sample(zyxwvutsrqponmlkjihgfedcba, 5))  # 多个字符中生成指定数量的随机字符
a = [1,3,5,6,7]       # 将序列a中的元素顺序打乱
random.shuffle(a)
print(a)

 

print(random.normalvariate(0.2, 1.2))  # 从中值为0.2,标准差为1.2的正态分布中选取一个随机值

 

创建一个均匀分布的样本:

(pylab库结合了pyplot和numpy,对交互式使用来说比较方便,既可以画图又可以进行简单的计算。)

import pylab
import random

random.seed()
real_vars = []
real_vars = [random.randint(0, 16) for val in range(100)]  # 生成100个在0-16之间的随机整数
print(real_vars)
# 创建分为10段的柱状直方图
pylab.hist(real_vars, 10)
# 定义x轴和y轴的坐标轴标题
pylab.xlabel("number range")
pylab.ylabel("count")
# 显示图形
pylab.show()

 

 

技术图片

第3章 绘制并定制化图表

3.2 定义图表类型----柱状图、线型图和堆积柱状图

from matplotlib.pyplot import *

# 数据
x = [1, 2, 3, 4, 5, 6]
y = [3, 4, 6, 7, 3, 2]

# 创建新图形
figure()

# 把分区划分为2*3的网格,选择#1的位置
subplot(2, 3, 1)
plot(x, y)

# 柱状图,选择#2的位置
subplot(2, 3, 2)
bar(x, y)

# 水平(horizontal)柱状图,选择#3的位置
subplot(2, 3, 3)
barh(x, y)

# 叠加柱状图
subplot(2, 3, 4)
bar(x, y)
# 叠加柱状图所需要的补充数据
y1 = [2, 3, 4, 5, 6, 7]
bar(x, y1, bottom=y, color=r)

# 箱线图
subplot(2, 3, 5)
boxplot(x)

# 散点图
subplot(2, 3, 6)
scatter(x, y)
show()

 

技术图片

补充说明:

figure():创建一个新的图表,给该方法传递字符串参数,这个字符串就会成为窗口的标题。

subplot(2, 3, 1):第一个参数是行数,第二个参数为列数,第三个参数表示图形的标号。

箱线图:一种用作显示一组数据分散情况资料的统计图。

技术图片

 

 

 3.3 简单的正弦图和余弦图

绘制的基本图表包含以下元素:

xlim()和ylim():坐标轴的最大和最小刻度。

xticks()和yticks():设置坐标轴的刻度间隔。

from matplotlib.pyplot import *
import numpy as np

# 取-pi到pi之间具有相同线性距离的256个点
x = np.linspace(-np.pi, np.pi, 256, endpoint=True)

y = np.cos(x)  # 计算正弦值和余弦值
y1 = np.sin(x)

plot(x, y)  # 画正弦图和余弦图
plot(x, y1)

title("Function sin and cos")  # 定义题目

xlim(-3.0, 3.0)  # 设置x和y的范围
ylim(-1.0, 1.0)

# 设置坐标轴的刻度间隔
xticks([-np.pi, -np.pi/2, 0, np.pi/2, np.pi])
yticks([-1, 0, +1])

show()

技术图片

# xlim(-3.0, 3.0)  # 设置x和y的范围
# ylim(-1.0, 1.0)

 

技术图片

 

 

 

 

 

 

 

 

 

以上是关于Python数据可视化编程实战-1的主要内容,如果未能解决你的问题,请参考以下文章

分享《Python数据可视化编程实战》中文版PDF+英文版PDF+源代码

分享《Python数据可视化编程实战》+PDF+源码+Igor Milovanovic+颛清山

Python数据可视化编程实战-1

谈谈Python实战数据可视化之matplotlib模块(实战篇)

谈谈Python实战数据可视化之pyplot模块

如何入门 Python 爬虫