热力图大揭秘!Matplotlib教你如何画出让数据‘火辣辣‘的激情图!

在这里插入图片描述

1. 引言

嘿,小伙伴们!今天咱们来点不一样的,走进Matplotlib的神奇世界,一起绘制那让人热血沸腾的热力图!别误会,这可不是什么天气预报图,而是让数据“火辣辣”展现自我的秘密武器。想象一下,那些冷冰冰的数字,在Matplotlib的魔法下,瞬间变身成为色彩斑斓的火焰图,每一格都诉说着它的故事。不论你是数据小白还是分析大神,这一招学会,保证让你的报告不再沉闷,让听众眼前一亮!快来,咱们一起给数据加点“辣”!热力图是一种通过对色块着色显示数据的统计图表。绘图时,需指定颜色映射的规则。

2. 导包

# 导包
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

# 如果浏览器不显示图片,就需要加上这句话
%matplotlib inline

# 让图片中可以显示中文
plt.rcParams['font.sans-serif'] = "SimHei"
# 让图片中可以显示负号
plt.rcParams["axes.unicode_minus"] = False

# 支持svg矢量图
%config Inlinebackend.figure_format = "svg"

3. 绘制热力图

df = pd.read_excel("11_imshow.xlsx", sheet_name="imshow")
df
省份产品A产品B产品C产品D产品E产品F产品G
0广东9275849850194468363759978307
1广西9849841392226162340140451983
2湖南541378552973197107843166213
3湖北7425986233417923434838783065
4江西1159133419279884820559336321
5四川8869840582445410860933328103
6福建4189261022938297270823059252
7江苏5818785236705593182758244199
8河南9914850930108881195077632435
9河北1374714195499895717030657211
10山东7908446633107333745246832780
11山西8703227059799614930729516253
data = df.drop(columns="省份").values
data
array([[9275, 8498, 5019, 4468, 3637, 5997, 8307],
       [9849, 8413, 9222, 6162, 3401, 4045, 1983],
       [5413, 7855, 2973,  197, 1078, 4316, 6213],
       [7425, 9862, 3341, 7923, 4348, 3878, 3065],
       [1159, 1334, 1927, 9884, 8205, 5933, 6321],
       [8869, 8405, 8244, 5410, 8609, 3332, 8103],
       [4189, 2610, 2293, 8297, 2708, 2305, 9252],
       [5818, 7852, 3670, 5593, 1827, 5824, 4199],
       [9914, 8509, 3010, 8881, 1950, 7763, 2435],
       [1374, 7141, 9549, 9895, 7170, 3065, 7211],
       [7908, 4466, 3310, 7333, 7452, 4683, 2780],
       [8703, 2270, 5979, 9614, 9307, 2951, 6253]], dtype=int64)
y = df["省份"]
x = df.drop(columns="省份").columns
x
Index(['产品A', '产品B', '产品C', '产品D', '产品E', '产品F', '产品G'], dtype='object')
plt.figure(figsize=(8, 6))

# 热力图
plt.imshow(data, cmap="rainbow")

# 设置刻度
plt.xticks(range(len(x)), x)
plt.yticks(range(len(y)), y)

# 添加文字
for i in range(len(x)):
    for j in range(len(y)):
        plt.text(
            x = i,
            y = j,
            s = data[j, i],
            ha = "center",
            va="center",
            fontsize=10
        )

# 颜色条
plt.colorbar()

plt.show()

在这里插入图片描述

  • 18
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

腾飞开源

你的鼓励将是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值