=== 头文件 ===
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
# 解决中文显示问题
import matplotlib as mpl
mpl.rcParams['font.sans-serif'] = ['SimHei']
mpl.rcParams['axes.unicode_minus'] = False
# inline 在行内显示
%matplotlib inline
=== 柱状图 ===
1、创建数据
2、设置坐标轴中文参数,代替数字 plt.xticks(num,stu)
3、设置每组柱状图的个数(有几个轴)
4、设置刻度 plt.ylim(0,100) 0~100分 plt.xlim(0,7) 6个学生
5、绘制柱状图 plt.bar 颜色、对其方式align、位置调整num-2*w
# x轴: 学生信息
stu=np.array(["张三","李四","王五","赵六","钱七","周八"])
num = np.arange(1,7) #学号
# x轴刻度: 注释掉为学号,放开为姓名
plt.xticks(num,stu)
# y轴: 两门成绩
score_chinese=np.random.randint(0,100,6)
score_maths=np.random.randint(0,100,6)
score_english=np.random.randint(0,100,6)
# 每组数据多少个轴(语文、数学两个轴)
#n=2
n=3
w=0.8/n
# 设置y轴刻度
plt.ylim(0,100)
plt.xlim(0,7)
# 图像对齐方式align: 居中center 左对齐edge
# 双数个轴用 edge
#plt.bar(num-w,score_chinese,label='语文',color='green',width=w,align='edge')
#plt.bar(num,score_maths,label='数学',color='blue',width=w,align='edge')
# plt.bar(num+w,score_english,label='英语',color='red',width=w,align='center')
# 单数个轴用center
plt.bar(num,score_chinese,label='语文',color='green',width=w,align='center')
plt.bar(num-w,score_maths,label='数学',color='blue',width=w,align='center')
plt.bar(num+w,score_english,label='英语',color='red',width=w,align='center')
plt.legend(loc='upper left')
scores = pd.read_csv('../Pandas_module/student_info1.csv',header=1,names=['Chinese','Math','English'])
scores = scores.fillna(0)
scores
plt.bar(scores.index.values,scores['Chinese'])
=== 直方图 ===
直方图(Histogram)又称质量分布图。是一种统计报告图,由一系列高度不等的纵向条纹或线段表示数据分布的情况。 一般用横轴表示数据类型,纵轴表示分布情况。
# 随机生成一组正态分布的数据
x=np.random.randn(1000)
# 用直方图表示这组数据
# plt(x,bins,weight)
# x: 数据
# bins: 多少个条状图
# weights: x的数据,对每一组的贡献(倍数) #得和我们的数据大小相同 #加上weight后,x的数据会乘以10体现在y轴刻度上
# bottom: 底部从多少开始,y轴刻度最低为10
# orientation= 'horizontal' 横向显示
w=np.random.randint(10,11,1000)
plt.hist(x,50,weights=w,bottom=100)
plt.show()
=== 散点图 ===
# 散点图 scatter
# x身高 y体重
x=np.array([150,151,154,156,185,185,176,175,178,178,190,198,174])
y=np.array([45,45,46,47,70,76,65,64,67,65,68,67,87])
# 看哪个分布段的身高和体重最多
plt.scatter(x,y)
plt.show()
=== 饼图 ===
# plt.pie()
month=['1月','2月','3月']
counts=[1300,1600,5000]
# 以逆时针来绘制
# startangle 开始绘制的角度
# explode 把饼取出来一点
# shadow 阴影
# autopct="%.1f%%" 显示百分比
# radius=0.8大小缩小到80%
explodes=[0.2,0,0]
plt.pie(counts,labels=month,startangle=90,explode=explodes
,shadow=True,autopct="%.1f%%",radius=0.8)
plt.show()