首页 > 编程语言 > 详细

python 数据可视化

时间:2020-07-20 19:45:34      阅读:91      评论:0      收藏:0      [点我收藏+]

1、散点图

plot(x, y, ‘.‘, color = (r,g,b)) 

plt.xlable(‘x轴标签‘)

plt.ylable(‘y轴标签‘)

x,y  x轴和y 轴的序列  ;   ‘.‘, ‘。‘小点还是大点     color, 散点图的颜色,可以用rgb定义,也可以用英文字母定义

 

 

plt.grid(True, linestyle = "-.", color = "r", linewidth = "3")

# True 显示网格 
# linestyle 设置线显示的类型(一共四种)
# color 设置网格的颜色
# linewidth 设置网格的宽度

 

技术分享图片

 

 

 

#散点图
import matplotlib#%%
from pandas import read_csv#%%
import matplotlib.pyplot as plt
from matplotlib.font_manager import _rebuild
_rebuild()
from pylab import mpl
#%%

data = read_csv("/Volumes/CHASESKY/python/03-数据分析与数据挖掘篇/1-数据分析数据可视化实战-(Python3.5)/章节5数据可视化/5/5.1/data.csv")

#%%  设置成中文!!!!
mpl.rcParams[font.sans-serif]=[uSimHei]
mpl.rcParams[axes.unicode_minus]=False

#%%

#plt.plot(data[‘广告费用‘], data[‘购买用户数‘], ‘.‘)

#plt.plot(data[‘广告费用‘], data[‘购买用户数‘], ‘o‘)

plt.plot(data[广告费用], data[购买用户数], o, color=yellow)
#plt.plot(data[‘广告费用‘], data[‘购买用户数‘], ‘o‘, color=(1, 1, 0))
#plt.plot(data[‘广告费用‘], data[‘购买用户数‘], ‘o‘, color=‘#FFFF00‘)
plt.xlabel(广告费用)#%%

plt.ylabel(购买用户数)
plt.grid(True)
#%%

plt.grid(True, linestyle = "-.", color = "r", linewidth = "3")
#%%
plt.show()

 

 

2、折线图

plot(x, y, style, color, linewidth) 

title(‘图的标题‘) 

style  画线的样式     color  画线的颜色    linewidth  线的宽度

技术分享图片

 

 

#折线图
import pandas#%%
from pandas import read_csv#%%
from matplotlib import pyplot as plt


data = read_csv(/Volumes/CHASESKY/python/03-数据分析与数据挖掘篇/1-数据分析数据可视化实战-(Python3.5)/章节5数据可视化/5/5.2/data.csv)

#对日期格式进行转换
data[日期]=pandas.to_datetime(data[日期])
data.rename(columns={日期:购买日期},inplace=True)


#设置线条粗细
plt.plot(data[购买日期], data[购买用户数], -, color=r, lineWidth=2)
plt.xlabel(购买日期)
plt.ylabel(购买用户数)
#‘-‘    顺滑的曲线
#‘--‘    虚线
#‘-.‘    线加点
#‘:‘    由点组成的曲线
#‘.‘    散点图
#‘,‘    像素点的散点图
#‘o‘    大点的散点图
#‘v‘    下三角标记的散点图
#‘^‘    上上角标记的散点图
#‘<‘    左角标记的散点图
#‘>‘    右角标记的散点图
#‘1‘    伞形下的标记散点图
#‘2‘    伞形上的标记散点图
#‘3‘    伞形左的标记散点图
#‘4‘    伞形右的标记散点图
#‘s‘    正方形标记的散点图
#‘p‘    五角形标记的散点图
#‘*‘    五角星标记的散点图
#‘h‘    多边形标记的散点图
#‘H‘    hexagon2 marker
#‘+‘    plus marker
#‘x‘    x marker
#‘D‘    diamond marker
#‘d‘    thin_diamond marker
#‘|‘    vline marker
#‘_‘    hline marker

plt.title(购买用户数时间序列图)

plt.show()

 

3、饼图

pie(x, labels, colors, explode, autopct);

x 进行绘制的序列, labels 拼图的个部分标签,   colors, 饼图的各部分颜色,使用rgb标色  explode需要突出的块状序列,即各块距离中心的位置   autopct  饼图占比的显示格式 , %.2f: 保留两位小数

 

import numpy
import matplotlib
from pandas import read_csv
import matplotlib.pyplot as plt#%%
 
data = read_csv(/Volumes/CHASESKY/python/03-数据分析与数据挖掘篇/1-数据分析数据可视化实战-(Python3.5)/章节5数据可视化/5/5.3/data.csv)
#%%
# 进行分组
gb = data.groupby(
    by=[通信品牌], 
    as_index=False
)[号码].agg({
    用户数:numpy.size
})
    #%%

#pip install matplotlib

font = {
    family : SimHei
}

matplotlib.rc(font, **font)
#%%

plt.pie(gb[用户数], labels=gb[通信品牌],colors=[(1,0.1,1),(1,0.5,1),(0,0,1)],explode=[0.2,0,0.1],autopct=%.2f%%)#%%

plt.show()

 

4. 柱形图:

d.bar(left, height, width, color)

barh(bottom, width, height,color)

left, x 轴的位置序列,一般采用arrange函数产生一个序列  

height, y 轴的数值序列,也就是柱形图的高度

width , 柱形图的宽度,一般设置为1即可

color 柱形图 填充颜色

d.xticks (位置,标签)

d.yticks (位置,标签)

 

 

 

普通 竖向/横向 柱形图

import numpy;
import matplotlib;
from pandas import read_csv;
from matplotlib import pyplot as plt;

font = {
    family : SimHei
};
matplotlib.rc(font, **font);

data = read_csv(/Volumes/CHASESKY/python/03-数据分析与数据挖掘篇/1-数据分析数据可视化实战-(Python3.5)/章节5数据可视化/5/5.4/data.csv);

gb = data.groupby(
    by=[手机品牌]
)[月消费(元)].sum()

index = numpy.arange(gb.size);

#竖向柱形图
plt.bar(index, gb, 1, color=G);
plt.show();

#%%  加上了标签
plt.bar(index, gb, 1, color=G);
plt.xticks(index + 1/2, gb.index);
plt.show();
#%%  
#横向柱形图  并加上了标签
plt.barh(index, gb, 1, color=G);
plt.yticks(index + 1/2, gb.index);
plt.show();

 

多组柱状图

d.index.levels[a] :多层索引取第a层

d.[:,a]  多层索引  依据第二个索引求值  适用于series 

d.legend(标签,loc=2) loc为存放位置

 技术分享图片

import numpy
import matplotlib
from pandas import read_csv
from matplotlib import pyplot as plt

font = {
    family : SimHei
}
matplotlib.rc(font, **font)

data = read_csv(/Volumes/CHASESKY/python/03-数据分析与数据挖掘篇/1-数据分析数据可视化实战-(Python3.5)/章节5数据可视化/5/5.4/data.csv)


d1 = 手机品牌#%%
d2 = 通信品牌#%%
v = "月消费(元)"
#  进行分组 并将多级分组放入索引里面
df = data.groupby(by=[d1,d2])[月消费(元)].apply(lambda x: sum(x))
#%%
d1size = df.index.levels[0].size
#%%
d2size = df.index.levels[1].size
# 求出横坐标的为主
index = numpy.arange(d1size)
#%%
colors=[r, g, b]
#%%
a = df.index.levels[0]
b = df.index.levels[1]

#%%  
print(df[:,全球通])  # 依据第二格索引求值  适用于series
print(b[0])  # 索引的取值
#%%
for i in range(0, d2size):
    x = b[i]  # 求出索引名
    sb = df[:,x] # 通过索引求出值
    sa = sb.values  # 转换成向量
    bar = plt.bar(index * d2size + i, sa, color=colors[i])  # 这里用series 和array 即 sb 和 sa都行
lIndex = numpy.arange(d1size)*d2size  # 取等差数列

plt.xticks(lIndex + 3/2, df.index.levels[0])  # 确定横坐标的标签

plt.legend(df.index.levels[1],loc=2) # 带等于号的参数放在后面,此参数用来调整所在位置

#%%
plt.show()#%%

 

多分类累积柱状图 

多了一个bottoms 参数

import numpy#%%
import matplotlib#%%
from pandas import read_csv#%%
from matplotlib import pyplot as plt#%%

font = {
    family : SimHei
}#%%
matplotlib.rc(font, **font)#%%

data = read_csv(/Volumes/CHASESKY/python/03-数据分析与数据挖掘篇/1-数据分析数据可视化实战-(Python3.5)/章节5数据可视化/5/5.4/data.csv)#%%

d1 = 手机品牌#%%
d2 = 通信品牌#%%
v = "月消费(元)"#%%

gb = data.groupby([d1, d2])[月消费(元)].sum()#%%

d1size = gb.index.levels[0].size
d1 = gb.index.levels[0]
d2size = gb.index.levels[1].size
d2= gb.index.levels[1]

index = numpy.arange(d1size)#%%
colors = [r, g, b]#%%
#%%
bsum = index*0.0#%%
print(bsum)
# 多分类累积柱状图  bsum 有点不太懂
for i in range(0, d2size): 
    x = d2[i]
    subgb = gb[:,x]    
    bar = plt.bar(index, subgb, color=colors[i], bottom=bsum) # 是为了让最开始的不被覆盖掉?
    bsum += subgb  # bottom需要传入的是[第0个类别~(当前类别-1)]的数据总和。
 
plt.xticks(index+1/2, gb.index.levels[0])#%%

plt.legend(gb.index.levels[1])#%%
plt.show()#%%

 

5.直方图

hist(x,color,bins,cumulative=False)

x 需要进行绘制的向量   color 直方图的填充颜色     bins 设置直方图的分组个数   

cumulative 设置是否累积技术

import matplotlib;
from pandas import read_csv;
from matplotlib import pyplot as plt;
import numpy
font = {
    family : SimHei
};
matplotlib.rc(font, **font);

data = read_csv(/Volumes/CHASESKY/python/03-数据分析与数据挖掘篇/1-数据分析数据可视化实战-(Python3.5)/章节5数据可视化/5/5.4/data.csv)
data[购买用户数]=numpy.random.randint(0,100,31402) 
#%%
plt.hist(data[购买用户数]);
plt.show();
# 设置了分组个数
plt.hist(data[购买用户数], bins=50);
plt.show();
# 进行累积
plt.hist(data[购买用户数], bins=20, cumulative=True);
plt.show();

 

python 数据可视化

原文:https://www.cnblogs.com/adelinebao/p/13346371.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!