matplotlib 绘图数据库
plot 情节、图表
lib 包,库
edge: 边缘,刀刃
pyplot python的绘图模块
折线图的绘制
主要函数(十个参数):
plt.plot( x,y,ls= , lw = ,c= , marker= , markersize= ,
markeredgecolor, markerfacecolor= label= )
x :x轴上的数据
y:y轴上的数据
ls(line style):折线的风格( '-' 实线 , ‘--’虚线, '-.' 点画线, ‘:’实点线)
lw: (line wide)线宽
c:color 线条颜色
marker:线条上点的形状,圆形等
marker:线条上点大小
markeredgecolor :线条上点的边框色
markerfacecolor:点的填充色
label:文本标签
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline 确保绘制的图咋notebook中展示出来的语句
x=np.linspace(0,100,1000) 创建0开始,100结束,1000个数的等差数列
y=np.sin(x)
plt.plot(x) 绘制x的线图
1、绘图1
plt.plot(x, y, c='red', lw= 2,ls= ' -') 绘制简单折线图
plt.show() 折线图的展示
2、绘图2
plt.plot( x,y,c='red' , lw=2,ls='-', marker= 'o' ,
markersize=10 , markeredgecolor= ' blue' , markerfacecolor = ' black' )
plt.show()
3、绘图3
因为label中有中文,所以为了防止乱码显示,需写专门的语句
plt.rcParams[ 'font.sans-serif'] = ['SimHei'] ---防止中文显示时出现乱码
plt.rcParams['axes.unicode_minus'] = False 正负号的显示问题
x=np.linspace( 0,100,1000)
y=np.sin(x)
plt.plot(x, y, c='red' , ls='-', lw=2, label= 'x与y的关系' )
plt.legend( loc= ' center' ) 图例的意思
plt.show()
4、
x=np.arange(0, 1.1, 0.1) 初始值-0,终值-1.1,步长-0.1
y=x**2
plt.figure( figsize=( 6.4, 4.84), dpi=100, facecolor= 'white' ),
figure== 画布大小,dpi==分辨率, facecolor= 画布边框颜色
plt.title= (' 这是一幅图') 折现图的标题
plt.xlabel('x') x轴名
plt.ylabel(' y') y轴名
plt.xlim( [ 0,1]) x轴坐标范围
plt.ylim( [ 1,3]) y轴坐标范围
plt.xticks( [ 0,0.2,0.4,0.6,0.8,1]) x轴的个坐标点坐标
plt.yticks( [ 1,1.5,2,2.5,3]) y轴坐标点坐标
plt.plot( x,y, label= ' y=x**2') 绘图
plt.legend(loc='best') 选择最好的位置防止折线图标签
plt.show()
5、图像的保存
在plt.show() 之前加保存语句,保存文件的格式一般有 png,pdf
plt.savefig( 'C://data/pip/可视化.png')
常用图形绘制:
饼图,条形图,直方图,散点图
1、饼图的绘制
饼图函数 ( 12个参数)
pie(x, explode , labels, colors , autopct= , pctdistance, shadow, startangle , radius , wedgeprops , textprops , cemter )
x- 绘图数据
explode - 用来显示每一个饼的大小 ---效果就是每一块饼是否要吐出显示
labels 标签,饼图每一块的标签( 一般为各个数据对应的标签)
colors 颜色 每一块的饼图的颜色 autopct每一块的饼的百分比
pctdistance 百分比标签语言 与 圆心的距离
shadow是否添加阴影效果
startangle 饼的初始角度
radius 饼的半径
wedgeprops 设置饼图内外边界的属性---即边界线的 属性 ---宽度 颜色
textprops 饼图中文本属性( 大小,颜色等)
counterclock =False 各部分饼 是否逆时针 排布
center 饼图中心位置
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import os
os.chdir( 'C://data' )
data=pd.read_excel( ' Prod_Trade.xlsx')
取data中的部分数据,分类汇总(以其中一个变量为行索引统计指定列索引的数据)
data_1=data.groupby(' Region').mean() ---以region为行索引分类汇总(
这样汇总就会自动对所有变量进行汇总),但我们只需要销量数据,
所以后边再加列标签索引获取
data_1=data.groupby(' Region').mean().['Sales']
data_1.index ---查看行索引
data_1.values ---查看统计的数据
x_data=data_1.index
y_data=data_1.values
explode= [ 0 , 0.1 , 0, 0, 0, 0.2 )
colors= ['red' , 'yellow' , 'blue' , 'biack' , 'purple' , ' green' ]
plt.rcParams[ ' font.sans-series' ] = [ ' SimHei']
plt.rcParams['axes.unicode_minus'] = False
plt.pie( x=x_data, explode=explode, labels= y_data , colors= colors,\
autopct= '.1f%%' , pctdistance= 0.5 , labeldistance= 1.1 ,
startangle = 120, \
radius = 1.2 , counterclock =False , wdgeprops= { 'linewidth':1.5 ,
'edgecolor': 'green'} ,\
textprops= { 'fontsize': 10, 'color':'red'} )
plt.title(' 订单金额分布图' ,pad=30) #pad 标题距离饼图的距离
plt.show()