数据可视化:
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();