数据可视化
数据可视化:
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();
                    
                
数据可视化:
                
            
        
浙公网安备 33010602011771号