曲线图
# -*- coding: utf-8 -*-
#基础、曲线图
import numpy
import matplotlib.pyplot as plt
#设置字体 SimHei: 黑体
#需要注意的是,使用中文字体后坐标轴上的负号将会无法显示,需要将`axes.unicode_minus`参数设置为`False`,这样才能让坐标轴上的负号正常显示
plt.rcParams['font.sans-serif'].insert(0, 'SimHei')
plt.rcParams['axes.unicode_minus'] = False # 解决负号显示问题
#如果使用的是Jupyter Notebook、通过下面的魔法指令,我们可以在绘图时生成矢量图(SVG - Scalable Vector Graphics),矢量图的特点是不会因为放大、缩小或旋转等操作而失真
#%config InlineBackend.figure_format = 'svg'
#创建画布
#画布大小、分辨率、背景色
#figure()函数可以用来创建画布 figure函数的返回值是一个Figure对象,它代表了绘图使用的画布
##figsize参数指定画布的尺寸(默认值是[6.4, 4.8])
#dpi参数指定画布的分辨率(默认值是100)
#facecolor参数指定画布的背景色(默认值是白色)
plt.figure(figsize=(10,10), dpi=120, facecolor='darkgray')
#创建坐标系
#subplot()函数来创建坐标系,该函数会返回Axes对象
#subplot的前三个参数分别用来指定整个画布分成 几行几列 以及当前 坐标系的索引 ,这三个参数的默认值都是1
#也可以通过上面创建的Figure对象的add_subplot方法或add_axes方法来创建坐标系,前者跟subplot函数的作用一致,后者会产生嵌套的坐标系
plt.subplot(2, 2, 1) #创建一个2x2的网格,并选择第1个子图
#绘制图表 - 折线图
x = numpy.linspace(-2 * numpy.pi, 2 * numpy.pi, 120) #生成120个点
y = numpy.sin(x) #生成y值
#
# #刻度 可不画 默认自动
# plt.xticks([0, 2 * numpy.pi, 4 * numpy.pi, 6 * numpy.pi, 8 * numpy.pi, 10 * numpy.pi, 12 * numpy.pi])
#创建画布
plt.figure(figsize=(8, 4), dpi=120)
#绘制折线图
#linewidth参数指定线条的粗细,默认值是1
#marker参数指定线条的标记(用什么符号来画曲线),默认值是None,即不显示标记
#color参数指定线条的颜色,默认值是黑色
plt.plot(x, y, linewidth=2, marker='+', color='red')
#如果要同时显示和保存图表,应该先执行savefig函数,再执行show函数,因为在调用show函数时,图表已经被释放,位于show函数之后的savefig保存的只是一个空白的区域
#保存图片
plt.savefig('直方图.png')
#显示绘图
plt.show()
散点图
# -*- coding: utf-8 -*-
#散点图
import matplotlib.pyplot as plt
import numpy as np
x = np.array([5550, 7500, 10500, 15000, 20000, 25000, 30000, 40000])
y = np.array([800, 1800, 1250, 2000, 1800, 2100, 2500, 3500])
#创建画布
plt.figure(figsize=(8, 6), dpi=120)
#绘制散点图
#scatter 函数表示作用是绘制散点图
# plt.scatter(x, y) #默认
# 自定义散点图
plt.scatter(x, y, s=100, c='red', alpha=0.5, marker='o', label='Data Points')
# 添加颜色条
# plt.colorbar(label='Color Mapping')
# 添加标题和标签
plt.title("Simple Scatter Plot")
plt.xlabel("X-axis")
plt.ylabel("Y-axis")
#如果要同时显示和保存图表,应该先执行savefig函数,再执行show函数,因为在调用show函数时,图表已经被释放,位于show函数之后的savefig保存的只是一个空白的区域
#保存图片
plt.savefig('直方图.png')
plt.show()
柱状图
# -*- coding: utf-8 -*-
#柱状图
import matplotlib.pyplot as plt
import numpy as np
#在对比数据的差异时,柱状图是非常棒的选择,我们可以使用pyplot模块的bar函数来生成柱状图,也可以使用barh函数来生成水平柱状图(也称为“条状图”)
#设置字体
plt.rcParams['font.sans-serif'].insert(0, 'SimHei')
plt.rcParams['axes.unicode_minus'] = False # 解决负号'-'显示为方块的问题
x = np.arange(4)
y1 = np.random.randint(20, 50, 4)
y2 = np.random.randint(10, 60, 4)
#绘制画布
plt.figure(figsize=(6, 4), dpi=120)
#绘制柱状图
## 通过横坐标的偏移,让两组数据对应的柱子分开,width参数控制柱子的粗细,label参数为柱子添加标签
plt.bar(x - 0.1, y1, width=0.2, label='A组')
plt.bar(x + 0.1, y2, width=0.2, label='B组')
#定制横轴 x 的刻度
plt.xticks(x, ['Q1', 'Q2', 'Q3', 'Q4']) #如果不定制、会默认显示 按x或y轴的数据来画
#配置label标签的位置
#'best':自动选择最合适的位置(默认值)
#'upper right':右上角
#'upper left':左上角
#'lower left':左下角
#'lower right':右下角
#'right':右侧
#'center left':左侧居中
#'center right':右侧居中
#'lower center':下方居中
#'upper center':上方居中
#'center':居中
plt.legend(loc='upper right')
#如果要同时显示和保存图表,应该先执行savefig函数,再执行show函数,因为在调用show函数时,图表已经被释放,位于show函数之后的savefig保存的只是一个空白的区域
#保存图片
plt.savefig('直方图.png')
#显示图形
plt.show()
堆叠柱状图
# -*- coding: utf-8 -*-
#堆叠柱状图
import matplotlib.pyplot as plt
import numpy as np
#设置字体
plt.rcParams['font.sans-serif'].insert(0, 'SimHei')
plt.rcParams['axes.unicode_minus'] = False # 解决负号'-'显示为方块的问题
x = np.arange(4)
y1 = np.random.randint(20, 50, 4)
y2 = np.random.randint(10, 60, 4)
labels = ['Q1', 'Q2', 'Q3', 'Q4']
#绘制画布
plt.figure(figsize=(6, 4), dpi=120)
#绘制柱状图
plt.bar(labels, y1, width=0.4, label='A组')
## 注意:堆叠柱状图的关键是将之前的柱子作为新柱子的底部,可以通过bottom参数指定底部数据,新柱子绘制在底部数据之上
#bottom 参数指定为y1,即在A组柱子的数据上
plt.bar(labels, y2, width=0.4, bottom=y1, label='B组')
#配置label标签的位置
#'best':自动选择最合适的位置(默认值)
#'upper right':右上角
#'upper left':左上角
#'lower left':左下角
#'lower right':右下角
#'right':右侧
#'center left':左侧居中
#'center right':右侧居中
#'lower center':下方居中
#'upper center':上方居中
#'center':居中
plt.legend(loc='upper right')
#如果要同时显示和保存图表,应该先执行savefig函数,再执行show函数,因为在调用show函数时,图表已经被释放,位于show函数之后的savefig保存的只是一个空白的区域
#保存图片
plt.savefig('直方图.png')
#显示
plt.show()
饼状图
# -*- coding: utf-8 -*-
#饼状图
#是一个将数据划分为几个扇形区域的统计图表,它主要用于描述数量、频率等之间的相对关系
#在需要展示数据构成的场景下,饼状图、树状图和瀑布图是不错的选择,我们可以使用pyplot模块的pie函数来绘制饼图
import matplotlib.pyplot as plt
import numpy as np
#设置字体
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
#准备数据
data = np.random.randint(100, 500, 7) #随机生成7个数据、随机生成100-500之间的整数
labels = ['苹果', '香蕉', '桃子', '荔枝', '石榴', '山竹', '榴莲']
#绘制画布
plt.figure(figsize=(5, 5), dpi=120)
#绘制饼图
plt.pie(
data,
#自动显示百分比
autopct='%.1f%%',
#饼图的半径
radius=1,
#百分比到饼图中心的距离
pctdistance=0.8,
#颜色(随机生成)
colors=np.random.rand(7, 3),
#分离距离、数量要与data长度一致
explode=[0.05, 0, 0.1, 0, 0, 0, 0],
#阴影效果
shadow=True,
#字体属性
textprops=dict(fontsize=10, color='black'),
# # 楔子属性(生成环状饼图的关键)
wedgeprops=dict(linewidth=1, width=0.35),
#标签
labels=labels
)
#定制图表标题
plt.title('水果销量', fontsize=15)
#如果要同时显示和保存图表,应该先执行savefig函数,再执行show函数,因为在调用show函数时,图表已经被释放,位于show函数之后的savefig保存的只是一个空白的区域
#保存图片
plt.savefig('直方图.png')
plt.show()
直方图
# -*- coding: utf-8 -*-
#直方图
#在统计学中,直方图是一种展示数据分布情况的图形,是一种二维统计图表,它的两个坐标分别是统计样本和该样本对应的某个属性的度量
#使用pyplot模块的hist函数来绘制直方图,其中bins参数代表了我们使用的分箱方式
import matplotlib.pyplot as plt
import numpy as np
#设置字体
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
#创建数据- 数组
heights = np.array([
170, 163, 174, 164, 159, 168, 165, 171, 171, 167,
165, 161, 175, 170, 174, 170, 174, 170, 173, 173,
167, 169, 173, 153, 165, 169, 158, 166, 164, 173,
162, 171, 173, 171, 165, 152, 163, 170, 171, 163,
165, 166, 155, 155, 171, 161, 167, 172, 164, 155,
168, 171, 173, 169, 165, 162, 168, 177, 174, 178,
161, 180, 155, 155, 166, 175, 159, 169, 165, 174,
175, 160, 152, 168, 164, 175, 168, 183, 166, 166,
182, 174, 167, 168, 176, 170, 169, 173, 177, 168,
172, 159, 173, 185, 161, 170, 170, 184, 171, 172
])
#绘制画布
plt.figure(figsize=(6, 4), dpi=120)
#绘制直方图
#bins: 直方图的分箱方式、bins数组可以用于定义每个柱的边界
#density: 是否将频率转换为概率密度 density=True时:直方图显示的是概率密度而不是频数。这样,每个柱的高度表示在该区间内数据的概率密度,而整个直方图的面积和为1。
#cumulative: 是否将频率转换为累计频率
#numpy.arange(145, 196, 5):生成从145到195的一个步长为5的数列 - 表示X轴
#横轴(X轴)代表身高的范围 纵轴(Y轴)代表人数(统计数量)
# plt.hist(heights, bins=np.arange(145, 196, 5), color='darkcyan') #'darkcyan' 是一种深青色
plt.hist(heights, bins=np.arange(145, 196, 5), color='darkcyan', density=True, cumulative=True)
#设置x轴标签
plt.xlabel('身高')
#设置y轴标签
plt.ylabel('人数')
#设置标题
plt.title('身高直方图')
#如果要同时显示和保存图表,应该先执行savefig函数,再执行show函数,因为在调用show函数时,图表已经被释放,位于show函数之后的savefig保存的只是一个空白的区域
#保存图片
plt.savefig('直方图.png')
#显示
plt.show()
标签:plt,函数,show,python,柱状,savefig,直方图,np From: https://www.cnblogs.com/littlecc/p/18244035