数据可视化
Posted 秋雨秋雨秋雨
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据可视化相关的知识,希望对你有一定的参考价值。
数据可视化:
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();
以上是关于数据可视化的主要内容,如果未能解决你的问题,请参考以下文章