赞
踩
# 温度变化折线图 %matplotlib inline #在 Jupyter notebook 里面内嵌画图的 import matplotlib.pyplot as plt import random # 1、准备数据 x = range(60) y_shanghai = [random.uniform(15,18) for i in x] y_beijing = [random.uniform(1,3) for i in x] # 中文显示问题 plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签 plt.rcParams['axes.unicode_minus']=False #用来正常显示负号 # 2、创建画布 plt.figure(num=1,figsize=(20,8),dpi=80,facecolor=None, edgecolor=None, frameon=True) # 3、绘制图像 plt.plot(x, y_shanghai, color="r",linestyle='-.',label="上海") plt.plot(x, y_beijing, color="b",label="北京") # 修改x y刻度 x_label = ["11分{}秒".format(i) for i in x] plt.xticks(x[::5],x_label[::5]) plt.yticks(range(0,40,5)) # 显示网格 plt.grid(linestyle='--', alpha=0.5) # 添加描述 标题 plt.xlabel("时间") plt.ylabel("温度") plt.title("上海、北京11点0分到12点之间的温度变化图示") # 4、显示图像 plt.show()
import matplotlib.pyplot as plt import random # 1、准备数据 x = range(60) y_shanghai = [random.uniform(15, 18) for i in x] y_beijing = [random.uniform(1, 3) for i in x] # 2、创建画布 # plt.figure(figsize=(20,8),dpi=80) figure, axes = plt.subplots(nrows=1, ncols=2, figsize=(20, 8), dpi=80) # 一个画布 子图一行两列 # 3、绘制图像 axes[0].plot(x, y_shanghai, color="r", linestyle='-.', label="上海") axes[1].plot(x, y_beijing, color="b", label="北京") # 中文显示问题 plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签 plt.rcParams['axes.unicode_minus']=False #用来正常显示负号 # 显示图例 axes[0].legend() axes[1].legend() # plt.legend(loc="lower left") # plt.legend(loc=4) # 修改x y刻度 x_label = ["11分{}秒".format(i) for i in x] axes[0].set_xticks(x[::5]) axes[0].set_xticklabels(x_label[::5]) axes[0].set_yticks(range(0, 40, 5)) axes[1].set_xticks(x[::5]) axes[1].set_xticklabels(x_label[::5]) axes[1].set_yticks(range(0, 40, 5)) # 显示网格 axes[0].grid(linestyle='--', alpha=0.5) axes[1].grid(linestyle='--', alpha=0.5) # 添加描述 标题 axes[0].set_xlabel("时间") axes[0].set_ylabel("温度") axes[0].set_title("上海11点0分到12点之间的温度变化图示") axes[1].set_xlabel("时间") axes[1].set_ylabel("温度") axes[1].set_title("北京11点0分到12点之间的温度变化图示") # 4、显示图像 plt.show()
import matplotlib.pyplot as plt %matplotlib inline import numpy as np # 1、准备x、y数据 x = np.linspace(-1,1,1000) y = 2 * x * x # 2、创建画布 plt.figure(figsize=(20,8), dpi=80) # 3、绘制图像 plt.plot(x, y) plt.grid(linestyle="--",alpha=0.5) plt.show()
import matplotlib.pyplot as plt # 1、准备数据 x = [225.98, 247.07, 253.14, 457.85, 241.58, 301.01, 20.67, 288.64, 163.56, 120.06, 207.83, 342.75, 147.9, 53.06, 224.72, 29.51, 21.61, 483.21, 245.25, 399.25, 343.35] y = [196.63, 203.88, 210.75, 372.74, 202.41, 247.61, 24.9, 239.34, 140.32, 104.15, 176.84, 288.23, 128.79, 49.64, 191.74, 33.1, 30.74, 400.02, 205.35, 330.64, 283.45] # 2、创建画布 plt.figure(figsize=(20, 8), dpi=80) # 3、绘制图像 plt.scatter(x, y) # 4、显示图像 plt.show()
import matplotlib.pyplot as plt import numpy as np # 1、准备数据 movie_names = ['雷神3:诸神黄昏', '正义联盟', '东方快车谋杀案', '寻梦环游记', '全球风暴', '降魔传', '追捕', '七十七天', '密战', '狂兽', '其它'] tickets = [73853, 57767, 22354, 15969, 14839, 8725, 8716, 8318, 7916, 6764, 52222] # 2、创建画布 plt.figure(figsize=(20, 8), dpi=80) # 3、绘制柱状图 x_ticks = range(len(movie_names)) plt.bar(x_ticks, tickets, color=['b', 'r', 'g', 'y', 'c', 'm', 'y', 'k', 'c', 'g', 'b']) # 中文显示问题 plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签 plt.rcParams['axes.unicode_minus']=False #用来正常显示负号 # 修改x刻度 plt.xticks(x_ticks, movie_names) # 添加标题 plt.title("电影票房收入对比") # 添加网格显示 plt.grid(linestyle="--", alpha=0.5) # 4、显示图像 plt.show()
由一系列高度不等的纵向条纹或线段表示数据分布的情况。一般用横轴表示数据范围,纵轴表示分布情况。
特点:绘制连续性的数据展示一组或者多组数据的分布状况(统计)
直方图牵涉统计学的概念,首先要对数据进行分组,然后统计每个分组内数据元的数量。在坐标系中,横轴标出每个组的端点,纵轴表示频数,每个矩形的高代表对应的频数,称这样的统计图为频数分布直方图。
直方图与柱状图的区别
直方图展示数据的分布,柱状图比较数据的大小(最根本的区别)
直方图X轴为定量数据,柱状图X轴为分类数据
直方图柱子无间隔,柱状图柱子有间隔
直方图柱子宽度可不一,柱状图柱子宽度须一致
import matplotlib.pyplot as plt import numpy as np # 中文显示问题 plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签 plt.rcParams['axes.unicode_minus']=False #用来正常显示负号 # 需求:电影时长分布状况 # 1、准备数据 time = [131, 98, 125, 131, 124, 139, 131, 117, 128, 108, 135, 138, 131, 102, 107, 114, 119, 128, 121, 142, 127, 130, 124, 101, 110, 116, 117, 110, 128, 128, 115, 99, 136, 126, 134, 95, 138, 117, 111, 78, 132, 124, 113, 150, 110, 117, 86, 95, 144, 105, 126, 130, 126, 130, 126, 116, 123, 106, 112, 138, 123, 86, 101, 99, 136, 123, 117, 119, 105, 137, 123, 128, 125, 104, 109, 134, 125, 127, 105, 120, 107, 129, 116, 108, 132, 103, 136, 118, 102, 120, 114, 105, 115, 132, 145, 119, 121, 112, 139, 125, 138, 109, 132, 134, 156, 106, 117, 127, 144, 139, 139, 119, 140, 83, 110, 102, 123, 107, 143, 115, 136, 118, 139, 123, 112, 118, 125, 109, 119, 133, 112, 114, 122, 109, 106, 123, 116, 131, 127, 115, 118, 112, 135, 115, 146, 137, 116, 103, 144, 83, 123, 111, 110, 111, 100, 154, 136, 100, 118, 119, 133, 134, 106, 129, 126, 110, 111, 109, 141, 120, 117, 106, 149, 122, 122, 110, 118, 127, 121, 114, 125, 126, 114, 140, 103, 130, 141, 117, 106, 114, 121, 114, 133, 137, 92, 121, 112, 146, 97, 137, 105, 98, 117, 112, 81, 97, 139, 113, 134, 106, 144, 110, 137, 137, 111, 104, 117, 100, 111, 101, 110, 105, 129, 137, 112, 120, 113, 133, 112, 83, 94, 146, 133, 101, 131, 116, 111, 84, 137, 115, 122, 106, 144, 109, 123, 116, 111, 111, 133, 150] # 2、创建画布 plt.figure(figsize=(20, 8), dpi=80) # 3、绘制直方图 distance = 2 group_num = int((max(time) - min(time)) / distance) plt.hist(time, bins=group_num, density=True) # 修改x轴刻度 plt.xticks(range(min(time), max(time) + 2, distance)) # 添加网格 plt.grid(linestyle="--", alpha=0.5) # 4、显示图像 plt.show()
用于表示不同分类的占比情况,通过弧度大小来对比各种分类。
特点:分类数据的占比情况(占比)
import matplotlib.pyplot as plt import numpy as np # 中文显示问题 plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签 plt.rcParams['axes.unicode_minus']=False #用来正常显示负号 # 1、准备数据 movie_name = ['雷神3:诸神黄昏', '正义联盟', '东方快车谋杀案', '寻梦环游记', '全球风暴', '降魔传', '追捕', '七十七天', '密战', '狂兽', '其它'] place_count = [60605, 54546, 45819, 28243, 13270, 9945, 7679, 6799, 6101, 4621, 20105] # 2、创建画布 plt.figure(figsize=(20, 8), dpi=80) # 3、绘制饼图 plt.pie(place_count, labels=movie_name, colors=['b', 'r', 'g', 'y', 'c', 'm', 'y', 'k', 'c', 'g', 'y'], autopct="%1.2f%%") # 显示图例 plt.legend() plt.axis('equal') # 4、显示图像 plt.show()

plt.tight_layout()
plt.show()
参考https://docs.hwl.cool/python/%E6%95%B0%E6%8D%AE%E6%8C%96%E6%8E%98/matplotlib.html
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。