matplot学习之路三

1、绘制矩形(含正方形)
绘制矩形函数Rectangle(xy, width, height, angle=0.0, kwargs),参数说明:
(1)xy,指定左侧、底部的矩形绘制坐标,用元组表示(x,y),浮点型。
(2)width,指定矩形的宽度,浮点型。
(3)height,指定矩形的高度,浮点型。
(4)angle,以xy坐标为基点逆时针方向旋转指定的角度(默认为0.0),单位符号°。
(5)
kwargs接受键值对参数,如alpha=0.8设置矩形背景色的透明度,linestyle=’ --’设置矩形边线风格

import numpy as np
import matplotlib.pyplot as plt
fig = plt.figure(figsize=(3,3))   #为了确保正方形的长宽在屏幕显示一致,这里设置figure宽,高相等
axes = fig.add_subplot(1,1,1) 
square = plt.Rectangle((0.2,0.2),0.2,0.2,color='g',alpha=0.8)  #设置长宽为0.2的绿色正方形
square1 = plt.Rectangle((0.5,0.5),0.2,0.4,color='c',alpha=0.8,angle=60)  #c为青色逆时针旋转60度长方形
rectangle = plt.Rectangle((0.5,0.2),0.4,0.2,color='b',alpha=0.8,linestyle='--')  #蓝色带虚线边的长方形
axes.add_patch(square)  #必须用add_pathch()函数把绘制的图形加载到绘图区域,否则无法显示
axes.add_patch(square1)       
axes.add_patch(rectangle)
plt.show()

在这里插入图片描述

2、绘制圆
绘圆函数Circle(xy, radius=5, **kwargs),参数说明:
(1)xy为圆心坐标。
(2)radius为半径长度。
(3)**kwargs指可以接受键值对参数。如alpha=0.5指定透明度,facecolor=’g’指定圆背景颜色,edgecolor=’r’指定圆边线颜色,linestyle=’-.'指定边线风格等。
3、绘制椭圆
绘制椭圆函数Ellipse(xy, width, height, angle=0, kwargs),参数说明:
(1)xy,设置椭圆圆心坐标(x,y),浮点型。
(2)width,设置椭圆的x轴向的直径。
(3)height,设置椭圆的y轴向的直径。
(4)angle,以xy坐标为基点逆时针方向旋转指定的角度(默认为0.0),单位符号°。
(5)
kwargs,接受键值对参数,使用方法同Rectangle()。

from matplotlib.patches import Ellipse,Circle     #绘制圆,椭圆只能在pathches模块获取
fig = plt.figure()
axes = fig.add_subplot(1,1,1)
E1 = Ellipse(xy=(0.6,0.6),width=0.5,height=0.2,angle=30.0,facecolor='yellow',alpha=0.9)  #椭圆
C1 = Circle(xy=(0.2,0.2),radius=0.2,alpha=0.5)  #绘制一个圆
axes.add_patch(E1)
axes.add_patch(C1)
plt.show()

在这里插入图片描述
*4、绘制多边形(三角形、平行四边形、梯形)
*绘制多边形函数Polygon(xy,closed=True,**kwargs),参数说明:
对(x,y)坐标。
*(3)**kwargs,接受键值对参数,使用方法同Rectangle()。
*(1) xy,指定一个形状为N×2的numpy数组,N指坐标数量,如三角形需要三
*(2) close,指定是否关闭多边形,值为False时关闭,则起点和终点相同。

import matplotlib.pyplot as plt
fig = plt.figure()
axes = fig.add_subplot(1,1,1)   #提供一个绘图子区域
p3 = plt.Polygon([[0.15,0.15],[0.15,0.7],[0.4,0.15]],color='k',alpha=0.5)   #三角形
p4 = plt.Polygon([[0.45,0.15],[0.2,0.7],[0.55,0.7],[0.8,0.15]],color='g',alpha=0.9)   #平行四边形
p5 = plt.Polygon([[0.69,0.45],[0.58,0.7],[0.9,0.7],[0.9,0.45]],color='b',alpha=0.9)   #梯形
axes.add_patch(p3)
axes.add_patch(p4)
axes.add_patch(p5)
plt.show()

在这里插入图片描述

1、条形图函数
函数bar(x, height, width=0.8, bottom=None, *, align=‘center’, data=None, **kwargs),参数说明:
(1)x,条形的x坐标。,包括了元组、列表、数组等。
(2)height,指定条形的高度。
(3)width,设置条形的宽度(默认值:0.8)。
(4)bottom,设置条形基座的y坐标(默认值0)。
(5)align,设置条形基座位置,'center’将基座至于x位置,'edge’将基座左边缘至于x位置,通过设置负width和’edge’使基座右边缘与x对齐。
(6)**kwargs,接受键值对参数,如color='g’设置条形的颜色,edgecolor=’k’设置条形边线的颜色,linewidth=0.5设置条形边线的宽度,tick_label=’数量条形图’顶端的标签,log=True设置y轴为对数刻度,orientation= 'horizontal’设置为水平条形图('vertical’垂直条形图,默认值),alpha=0.9设置透明度,label=’ 男’设置条形图图列标签,left=1.5设置条形图基座左对齐位置。

import matplotlib.pyplot as plt
import numpy as np
import matplotlib
plt.rc('font', family='simhei', size=15)  # 设置中文显示,字体大小15
plt.rc('axes', unicode_minus=False)  # 该参数解决负号显示问题
c = ['四年级', '五年级', '六年级']  # x轴刻度中文标签
x = np.arange(len(c)) * 0.8  # x轴刻度数,条形基座中间x位置数
girl = [19, 19, 21]  # 女生数量,对应条形高度
boy = [20, 18, 21]  # 男生数量,对应条形高度
b1 = plt.bar(x, height=girl, width=0.2, alpha=0.8,
             color='red', label='女生')  # 绘制女生数量红条形
b2 = plt.bar([x1+0.2 for x1 in x], height=boy, width=0.2,
             alpha=0.8, color='blue', label='男生')
plt.title('班级人数统计')
plt.legend()  # 显示图例(男生,女生)
plt.ylim(0, 40)  # 设置y轴(人数显示)的范围
plt.ylabel('人数')  # 设置y轴左边标签
plt.xticks([index + 0.2 for index in x], c)  # 设置x轴条形下面标签
plt.xlabel("班级")  # 设置x轴下面的标签
for r1 in b1:
    height = r1.get_height()  # 得到条形高度数
    plt.text(r1.get_x()+r1.get_width()/2, height+1,
             str(height), ha='center', va="bottom")  # 设置条顶值
for r2 in b2:
    height = r2.get_height()
    plt.text(r2.get_x()+r2.get_width()/2, height+1,
             str(height), ha='center', va='bottom')
plt.show()

在这里插入图片描述
**直方图函数
函数hist(x, bins=None, range=None, density=None, weights=None, cumulative=False, bottom=None, histtype=‘bar’, align=‘mid’, orientation=‘vertical’, rwidth=None, log=False, color=None, label=None, stacked=False, normed=None, *, data=None, kwargs),参数说明:
(1)x,数值集合,包括了元组、列表、数组等,提供概率样本数。
(2)bins,条形数量,就是把所有样本数分成bins指定的条形数量范围进行分类数量统计。
也可以指定条形的区间范围,如bins=[1,2,3,4]第一个条形统计数量范围为[1,2)之间(左闭,右开),第二个条形为[2,3)之间。
(3)range,可选,指概率分布范围的上、下限值(对应x轴的最小值、最大值),如果没有提供则默认值为(x.min()、x.max())。
(4)density,值设为True,则返回元组的第一个元素将被归一化以形成概率密度的计数,即直方图下的面积(或积分)将总和为1。注意,normed和density参数同时只能一个被使用。
(5)weights,给x所有值赋权重,在normed或density设置True情况下,该参数自动做归一化处理。
(6)cumulative,True时,样本数从小到大累积统计条形里的数量(最右边条形将最高);False时,从大到小累积统计(最右边条形将最小)。
(7)bottom,指定每个条形基座在x轴上的基线位置。
(8)histtype,指定直方图的类型,可选值包括了’bar’, ‘barstacked’,‘step’,‘stepfilled’。
(9)align,指定条形基座在x轴上相对基线的位置,可选值包括了’left’,‘mid’, ‘right’,默认值为’mid’。
(10)orientation,设置条形图水平或垂直的显示方式,可选值包括了’horizontal’, ‘vertical’,默认值为’vertical’。
(11)rwidth,指定条形图的宽度,默认值为None,则自动计算宽度。
(12)log, 如果值为“True”,则直方图轴将设置为对数刻度。
(13)color,设置条形图的颜色。等同于facecolor=“blue”。
(14)label,设置图例的字符串信息。
(15)stacked,设置为True,则多个条形堆叠在一起。
(16)normed,不推荐使用,请改用density关键字参数。

import matplotlib.pyplot as plt
import numpy as np
plt.rc('font',family='simhei',size=15)
plt.rc('axes',unicode_minus=False) #该参数解决负号显示问题
d1 = np.random.randn(10000)
plt.hist(d1,bins=40,facecolor='blue',edgecolor="black",alpha=0.9)  #设置40个条形数量的直方图
plt.xlabel('概率分布区间')
plt.ylabel('频数/频率')
plt.title('频数/频率分布直方图')
plt.show()

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/changshupx/article/details/108636797