Matplotlib基础02:散点图、折线图与柱状图
散点图
散点图Scatter: 是数据点在直角坐标系中的分布图,可以让我们对数据分析规律,得到数据变化的趋势,进而进行数据分组。
API:scatter()--------用于绘制散点图
- scatter(x,y,scale,color,marker,label)
参数:x,y是绘制数据点的x,y坐标——不可省略;
color是数据点的颜色——取值(b,g,r,y,k,w,c,m)等;
scale是数据点的大小——默认值是38
marker是数据点的样式——默认值是’o’(圆点)
label是图例——可以省略
代码实现
import matplotlib
import matplotlib.pyplot as plt
import numpy as np
print("""
散点图Scatter: 是数据点在直角坐标系中的分布图,
可以实现--数据分析规律--数据变化的趋势--数据分组。
基础的函数包括:scatter()--------用于绘制散点图
参数:scatter(x,y,scale,color,marker,label)
x,y是绘制图标的x,y坐标,不可省略
color是数据点的颜色---b,g,r,y,k,w,c,m;
scale是数据点的大小,默认值是38
marker是数据点的样式, 默认值是'o'(圆点)
label是图例文字,可以省略
marker:数据点样式包括:
-:实线 .:点 ,:像素 o:圆形 +:+号标记 x:x号标记 v:朝下的三角形
--:虚线 -.:点线 ::点虚线 ^:朝上的三角形 <: >:…… D:钻石形 d:小钻石形 |:垂直形 _:水平线形
""")
#演示一个例子
#1.设置中文
plt.rcParams["font.family"] = "SimHei"
plt.rcParams["axes.unicode_minus"] = False #显示负号----1
#2.使用numpy正态分布生成数据x,y
n = 1024
x1 = np.random.normal(0,1,n) #范围,以及shape
y1 = np.random.normal(0,1,n)
#添加多一组数据使用均匀分布
x2 = np.random.uniform(-4,4,(1,n)) #范围,以及shape
y2 = np.random.uniform(-4,4,(1,n))
#描绘散点图
plt.scatter(x2,y2,s=40,c='g',marker='o',label='均匀分布')
plt.scatter(x1,y1,s=40,c='b',marker='o',label="正态分布")
#添加文字,设置下x,y的坐标范围设置全局标题
plt.text(2.5,2.5,"均值:0\n标准差:1",color='r')
plt.xlim(-4,4)
plt.ylim(-4,4)
#设置坐标轴标签
plt.xlabel("横坐标x",fontsize=14,color='r')
plt.ylabel("纵坐标y",fontsize=14)
plt.suptitle("散点图",fontsize=20,backgroundcolor='y')
#设置图例,位置设置为2,左上角
plt.legend(loc=2)
plt.show()
折线图
折线图 (Line Chart):散点图的基础上,将相邻的点用线段相连接。可以描述变量的变化趋势
API:plt.plot--------绘制折线图。
- plot( x, y, color, marker, label, linewidth, markersize )
参数:
x,y是数据点的x,y坐标,其中y不可省略。x默认是0,1,2,3……
color 是颜色
marker是数据点的形状
label是图例
linewith是线宽
markersize是数据点的大小
代码演示
import matplotlib
import matplotlib.pyplot as plt
import numpy as np
print("""
折线图:是在散点图的基础上,将相邻的点用线段链接起来的图表
--可以描述变量的变化趋势
使用plt.plot()函数绘制折线图,
参数:
x,y是数据点的x,y坐标,其中y不可省略。x默认是0,1,2,3。。
color 是颜色
marker是点的形状
label是图例文字
linewith是线宽
markersize是数据点的大小
""")
#例子绘制自己创建的温度与湿度的折线图
#0设置中文
plt.rcParams["font.family"] = "SimHei"
#1.生成随机数做样本数据点
n = 24
y1 = np.random.randint(27,37,n)
y2 = np.random.randint(40,60,n)
#2.绘制,注意,多个折线图,颜色它自己会区分开
plt.plot(y1,label='温度')
plt.plot(y2,label='湿度')
#设置全局biaot
plt.suptitle("24小时温度湿度数据折线图")
#设置x的范围
plt.xlim(0,24)
#设置坐标名字
plt.xlabel("小时")
plt.ylabel("测试值")
#显示图例
plt.legend()
#显示图片
plt.show()
柱状图
柱状图(Bar chart):由一系列的高度不等的柱形条纹表示数据分布的情况。
API:bar--------绘制柱状图
- bar( left, height, width, facecolor, edgecolor, label )
参数:
left:是条纹left坐标,
height:条纹高度,指数据y的值
width:条纹的宽度
facecolor:条纹填充的颜色
edgecolor:条纹边框颜色
label:设置图例
代码演示
import matplotlib
import matplotlib.pyplot as plt
import numpy as np
print("""
柱状图:Bar chart由一系列的高度不等的柱形条纹表示数据分布的情况
使用函数bar()来绘制
参数:
left:是条纹left坐标,
height:根据数据y定的条纹高度
width:条纹的宽度
facecolor:条纹填充的颜色
edgecolor:条纹边框颜色
label:设置图例
""")
#1.设置中文
plt.rcParams["font.family"] = "SimHei"
plt.rcParams["axes.unicode_minus"] = False #设置显示符号
#设置数据集,这里不给x也会自动计算
y1 = [32,25,16,30,24,45,33,28,17,24,20]
y2 = [-23,-35,-26,-35,-45,-35,-32,-23,-17,-22,-28]
#绘制柱状图
plt.bar(range(len(y1)),y1,width=0.8,facecolor='green',edgecolor='white',label="统计量1")
plt.bar(range(len(y2)),y2,width=0.8,facecolor='r',edgecolor='white',label="统计量2")
#设置子标题,因为只有一个subplot,所以这里相当于全局标题
plt.title("统计量柱状图")
#设置图例
plt.legend()
#填充 plt.tight_layout()
#显示
plt.show()