matplotlib绘图(三)

9.面积图

plt.fill_between()通过颜色填充来增强视觉效果

import matplotlib.pyplot as plt
import numpy as np

# 设置随机种子以保证结果可复现
np.random.seed(0)

# 生成时间序列数据
dates = np.arange('2023-01', '2023-12', dtype='datetime64[M]')  # 从2023年1月到2023年12月
#dtype='datetime64[M]表示以月份为单位的日期时间数据
values = np.random.randn(len(dates)).cumsum()  # 随机数据并累加以模拟趋势


# 使用 fill_between 填充颜色
plt.fill_between(dates, values, color="b", alpha=0.5)
plt.plot(dates, values, color="b", alpha=0.6, linewidth=2)

#格式化日期显示
plt.gcf().autofmt_xdate()

# 显示图形
plt.show()

10.多变量直方图

import matplotlib.pyplot as plt
import pandas as pd
import numpy as np

data3=np.random.normal(1,100,10)
data2=np.random.normal(1,100,10)
data1=np.random.normal(1,100,10)
#我这里数据集是用numpy库生成的
color=['r','b','m']
plt.hist([data1,data2,data3],color=color,stacked=True,density=False)
#首先导入多个数据集,每个数据集分配一个颜色,几个数据集就分配几个颜色
#stacked=True 表示堆叠显示,density=False 意味着y轴表示频率而不是密度
plt.show()

11.树形图

import matplotlib.pyplot as plt
import squarify

# 数据: 列表中的元组包含类别名称和数量
data = [
    ("subcompact", 35),
    ("suv", 62),
    ("compact", 41), 
    ("pickup", 33),
    ("midsize minivan", 11),
    ("aseas2", 5)
]
colors=['m','c','g','b','r','0']
# 绘制树状图

squarify.plot(sizes=[d[1] for d in data], label=[d[0] for d in data], alpha=0.7, pad=True, color=colors)
#这里d[1]是取第二个元素就是我们的数据    d[0]提取名字
# label:一个列表,包含每个类别的名称。

# pad:是否在矩形之间添加间隙。

# 移除坐标轴
plt.axis('off')

plt.show()

12.波峰波谷时间序列

import matplotlib.pyplot as plt

# 示例数据
data = [112, 118, 132, 129, 121, 135, 148, 148, 136, 119, 104, 100, 118, 140, 158, 168, 170, 170, 179, 199, 215, 236]

# 找到峰顶和谷底
peaks = []
troughs = []

for i in range(1, len(data) - 1):
    if data[i] > data[i - 1] and data[i] > data[i + 1]:
        peaks.append(i)
    elif data[i] < data[i - 1] and data[i] < data[i + 1]:
        troughs.append(i)
#遍历数据列表(除了第一个和最后一个元素),如果当前元素大于其前后两个元素,则认为它是一个峰顶;
# 如果小于其前后两个元素,则认为它是一个谷底。将这些索引添加到相应的列表中。

plt.plot(data,marker='o')

# 绘制峰顶
plt.scatter(peaks, [data[i] for i in peaks], color='green', marker='^',s=100)
#使用 plt.scatter() 函数在峰顶的位置画上绿色的向上三角形
# 绘制谷底
plt.scatter(troughs, [data[i] for i in troughs], color='red', marker='v',s=100)
#在谷底的位置画上红色的向下三角形。
plt.grid(True)
#开启图表背景的网格线
# 显示图表
plt.show()

13.词云图

首先安装好jieba和wordcloud这两个工具

import jieba
from PIL import Image
from wordcloud import WordCloud
import numpy as np
import matplotlib.pyplot as plt
 
# 我们导入文本内容,并且去除掉一下换行符和空格,代码如下
text = "这是一个示例文本。我们将从中生成词云图。"

 
# 我们需要将其分成一个个的词,这个时候就需要用到jieba模块了,代码如下
text_cut = jieba.lcut(text)
# 将分好的词用某个符号分割开连成字符串
text_cut = ' '.join(text_cut)

 
# # 绘制词云图的核心代码
word_cloud = WordCloud(font_path="simsun.ttc",  # 设置词云字体
                       background_color="white",# 词云图的背景颜色
                       ) 
word_cloud.generate(text_cut)
image = word_cloud.to_image()
image.show()

效果图如下

14.小提琴图

小提琴图的主要特点:

  • 中心:显示数据的中位数。
  • 四分位数:显示数据的第一四分位数(Q1)和第三四分位数(Q3)。
  • 密度曲线:展示了数据在不同值上的概率密度,提供了比箱形图更丰富的信息。
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt

# 设置随机种子以便结果可复现
np.random.seed(0)

data1 = np.random.normal(loc=0, scale=1, size=100)
data2 = np.random.normal(loc=2, scale=1.5, size=100)

all= [data1, data2]# 将数据合并到列表中


# 使用Seaborn绘制小提琴图
sns.violinplot(data=all, inner="quartile")
#"quartile" 选项会在小提琴图的内部绘制出四分位数(即第一四分位数、中位数和第三四分位数)

plt.show()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值