数据可视化

数据可视化:

1、绘制散点图:

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

data = read_csv("C:\\PA\\5.1\\data.csv")

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

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.plot(data['广告费用'], data['购买用户数'], '.')

plt.xlabel('广告费用');

plt.ylabel('购买用户数');
plt.grid(True);

plt.show();

 2、折线图:

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

data = read_csv('C:\\PA\\5.2\\data.csv');
#对日期格式进行转换
data['购买日期']=pandas.to_datetime(data['日期']);

#'-'    顺滑的曲线
plt.plot(data['购买日期'], data['购买用户数'], '-');

#设置颜色
plt.plot(data['购买日期'], data['购买用户数'], '-', color='r');
#设置线条粗细
plt.plot(data['购买日期'], data['购买用户数'], '-', color='r', lineWidth=10);

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

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

plt.show();

3、饼图:

# -*- coding: utf-8 -*-
import numpy;
import matplotlib;
from pandas import read_csv;
import matplotlib.pyplot as plt;

data = read_csv('C:\\PA\\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['通信品牌'], autopct='%.2f%%');

plt.show()

4、柱形图:

简单条形图:

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('C:\\PA\\5.4\\data.csv');

gb = data.groupby(
    by=['手机品牌']
)['月消费(元)'].agg({
    '月消费': numpy.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();

复杂些的:

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('C:\\PA\\5.4\\data.csv');

d1 = '手机品牌';
d2 = '通信品牌';
v = "月消费";

gb = data.groupby(by=[d1, d2])['月消费(元)'].agg({v: numpy.sum});

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

index = numpy.arange(d1size);
colors=['r', 'g', 'b'];

for i in range(0, d2size): 
    print(i);
    subgb = gb[v][gb.index.labels[1]==i];
    bar = plt.bar(index*d2size + i, subgb, color=colors[i]);

lIndex = numpy.arange(d1size)*d2size;
plt.xticks(lIndex + 3/2, gb.index.levels[0]);

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

堆叠图:

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('C:\\PA\\5.4\\data.csv');

d1 = '手机品牌';
d2 = '通信品牌';
v = "月消费";

gb = data.groupby(by=[d1, d2])['月消费(元)'].agg({v: numpy.sum});

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

index = numpy.arange(d1size);
colors = ['r', 'g', 'b'];
bsum = index*0.0;

for i in range(0, d2size): 
    print(i);
    subgb = gb[v][gb.index.labels[1]==i];    
    bar = plt.bar(index, subgb, color=colors[i], bottom=bsum);
    bsum += subgb;

plt.xticks(index+1/2, gb.index.levels[0]);

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

5、直方图:

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

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

data = read_csv('C:\\python\\5.5\\data.csv');

plt.hist(data['购买用户数']);
plt.show();

plt.hist(data['购买用户数'], bins=20);
plt.show();

plt.hist(data['购买用户数'], bins=20, cumulative=True);
plt.show();

 

posted @ 2018-06-06 18:02  秋雨秋雨秋雨  阅读(235)  评论(0编辑  收藏  举报