常用方法
套路总结
引入方法 numpy mataplotlib read_csv plt
设置字体
读取数据 csv
设置图
设置标题,x,y标签
展示图 show
常用图形
1.散点图 plot
2.饼图 pie
3.柱状图 bar barh
散点图实例,附源码
# 1.引用方法 matplotlib pandas
import matplotlib
from pandas import read_csv
import matplotlib.pyplot as plt
# 2.读取数据
df = read_csv('data/data.csv')
# print(df)
# 3.设置字体 font={family,SimHei} matplotlib.rc(font,**font)
font = {
'family': 'SimHei',
}
matplotlib.rc('font', **font)
# 4.设置数据plt.plot(数据1,数据2,形状,颜色)
plt.plot(df['购买用户数'], df['广告费用'], 'o', color='red')
# 5.设置x和y的显示标签
plt.xlabel('购买用户数')
plt.ylabel('广告费用')
# 6.grid(True)
plt.grid(True)
# 7.show()
plt.show()
饼图实例,附详细源码
# 1.引用方法 numpy mataplotlib read_csv pyplot
import numpy
import matplotlib
from pandas import read_csv
import matplotlib.pyplot as plt
# 2.读取数据
data = read_csv('data/data_phone.csv')
# 3.分组 data.groupby(by=[通信品牌],as_index=)[号码].agg({用户数:numpy.size})
# gb = data.groupby(by=['通信品牌'], as_index=False)['号码'].agg({'用户数': numpy.size})
gb = data.groupby(by=['省份'], as_index=False)['号码'].agg({'用户数': numpy.size})
# 4.设置字体 family rc
font = {'family': 'SimHei'}
matplotlib.rc('font', **font)
# 5.设置饼图pie(数据gb[用户数],标签gb[通信品牌],保留小数autopct=%.2f%%)
# plt.pie(gb['用户数'], labels=gb['通信品牌'], autopct='%.2f%%')
plt.pie(gb['用户数'], labels=gb['省份'], autopct='%.2f%%')
# 6.展示饼图
plt.show()
柱状图实例,附详细源码
# 1.引入方法 numpy matplotlib read_csv plt
import numpy
import matplotlib
from pandas import read_csv
import matplotlib.pyplot as plt
# 2.设置字体
font = {'family': 'SimHei'}
matplotlib.rc('font', **font)
# 3.读取数据
data = read_csv('data/data_phone.csv')
# 4.设置 横坐标x=手机品牌 纵坐标y=月消费 对比comparison=通信品牌
# 横坐标
d1 = '手机品牌'
# 条形图
d2 = '通信品牌'
# 纵坐标
v = "月消费"
# 5.分组data.groupby(by=[手机品牌,通信品牌])[月消费(元)].agg({纵坐标y:numpy.sum})
gb = data.groupby(by=[d1, d2])['月消费(元)'].agg({v: numpy.sum})
# 6.从分组中取出手机品牌通信品牌 phone=gb.index.levels[0].size communication=gb.index.levels[1].size
# 手机品牌
d1size = gb.index.levels[0].size
# 通信品牌
d2size = gb.index.levels[1].size
# 7.设置三种颜色[r,g,b] 三种通信品牌phone x轴序列left=numpy.arange(phone)
# 索引是索引的手机品牌
index = numpy.arange(d1size)
# 颜色三种 三种通信品牌
colors = ['r', 'g', 'b']
# 8.遍历通信品牌
for i in range(0, d2size):
# y轴序列height=gb[y][gb.index.labels[1]==i]
# 名字和手机品牌相等
subgb = gb[v][gb.index.labels[1] == i]
#
# 绘制条形图bar=plt.bar(left*communication+i,y轴序列height,1,color=三种颜色[i])
bar = plt.bar(index * d2size + i, subgb, color=colors[i])
#
# 9.标签位置 plt.xticks(nump.arange(phone)*communication+3/2,gb.index.levels[0])
# 绘制条形图
lIndex = numpy.arange(d1size) * d2size
# 画标签,索引的位置+
plt.xticks(lIndex + 3 / 2, gb.index.levels[0])
# 10.展示 plt.legend(gb.index.levels[1]) show
plt.legend(gb.index.levels[1])
plt.show()