【python】matplotlib画图

data.csv数据下载
data_for_pie.csv数据下载

import matplotlib.pyplot as plt // plt.plot

散点图

这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述

# -*- coding: utf-8 -*-
__author__ = 'yuanlei'
import matplotlib
from pandas import read_csv
import matplotlib.pyplot as plt

data = read_csv("data.csv")
#####
font = {
    'family' : 'SimHei'
}
matplotlib.rc('font', **font)
#####
# 注意点1:要把读入的serise类型的数据转化成list
# 注意点2:为了在坐标轴上显示中文标题,需要在中文前加上u,以及
#         在plt.plot之前加上上面那段话.
plt.plot(list(data["广告费用"]),list(data["购买用户数"]), '.')
plt.xlabel(u"广告费用")
plt.ylabel(u"购买用户数")
plt.show()


这里写图片描述

折线图以及各种设置

这里写图片描述

# -*- coding: utf-8 -*-
__author__ = 'yuanlei'
import matplotlib
import pandas
#from pandas import read_csv
import matplotlib.pyplot as plt

data = pandas.read_csv("data.csv")
data['购买日期']=pandas.to_datetime(data['日期'])
#####
font = {
    'family' : 'SimHei'
}
matplotlib.rc('font', **font)
#####
# 注意点1:要把读入的serise类型的数据转化成list
# 注意点2:为了在坐标轴上显示中文标题,需要在中文前加上u,以及
#         在plt.plot之前加上上面那段话.
#plt.plot(list(data['购买日期']),list(data["购买用户数"]), '.')
#'-'	顺滑的曲线
plt.plot(list(data['购买日期']), list(data['购买用户数']), '-');

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


plt.xlabel(u"广告费用")
plt.ylabel(u"购买用户数")
plt.show()




这里写图片描述

import matplotlib.pyplot as plt // plt.pie

饼图

这里写图片描述

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

data = read_csv('data_for_pie.csv');

gb = data.groupby(
    by=['通信品牌'], 
    as_index=False
)['号码'].agg({
    '用户数':numpy.size
});
print(gb['通信品牌'])
print(gb["用户数"])
#用原来的手段会导致编码问题,目前还没解决
a = {0:"全球通",1:"动感地带",2:"神州行"}
font = {
    'family' : 'SimHei'
}

matplotlib.rc('font', **font);
#plt.pie(b, a, autopct='%.2f%%');gb['通信品牌']
plt.pie(gb['用户数'], labels=a, autopct='%.2f%%');

plt.show()

这里写图片描述

import matplotlib.pyplot as plt // plt.bar

柱形图

这里写图片描述

# -*- coding: utf-8 -*-
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('data_for_pie.csv')

gb = data.groupby(
    by=['手机品牌']
)['月消费(元)'].agg({
    '月消费': numpy.sum
})

index = numpy.arange(gb['月消费'].size)
print(gb.index)
#竖向柱形图
# 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()
#

# -*- coding: utf-8 -*-
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('data_for_pie.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();

# -*- coding: utf-8 -*-
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('data_for_pie.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();

这里写图片描述这里写图片描述

import matplotlib.pyplot as plt // plt.hist

直方图

这里写图片描述

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

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

data = read_csv('data.csv')

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



这里写图片描述
这里写图片描述
这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yuanCruise

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值