seaborn

Seaborn 是一个建立在 Matplotlib 基础之上的 Python 数据可视化库,专注于绘制各种统计图形,以便更轻松地呈现和理解数据。

import seaborn as sns

# 设置主题和颜色调色板
sns.set_theme(style="whitegrid", palette="pastel")

 sns.set_theme() 函数,可以选择不同的主题和模板,以下是 Seaborn 内置的一些主题和模板:

主题(Theme)

darkgrid(默认):深色网格主题。

import seaborn as sns

# 设置为 darkgrid 主题
sns.set_theme(style="darkgrid")
whitegrid:浅色网格主题。

import seaborn as sns

# 设置为 whitegrid 主题
sns.set_theme(style="whitegrid")
dark:深色主题,没有网格。

import seaborn as sns

# 设置为 dark 主题
sns.set_theme(style="dark")
white:浅色主题,没有网格。

import seaborn as sns

# 设置为 white 主题
sns.set_theme(style="white")
ticks:深色主题,带有刻度标记。

import seaborn as sns

# 设置为 ticks 主题
sns.set_theme(style="ticks")

模板(Context)

paper:适用于小图,具有较小的标签和线条。

import seaborn as sns

# 设置为 paper 模板
sns.set_theme(context="paper")
notebook(默认):适用于笔记本电脑和类似环境,具有中等大小的标签和线条。

import seaborn as sns

# 设置为 notebook 模板
sns.set_theme(context="notebook")

talk:适用于演讲幻灯片,具有大尺寸的标签和线条。

import seaborn as sns

# 设置为 talk 模板
sns.set_theme(context="talk")

poster:适用于海报,具有非常大的标签和线条。

sns.set_theme(context="poster")

实例

import seaborn as sns
import matplotlib.pyplot as plt

# 设置主题和颜色调色板
sns.set_theme(style="darkgrid", palette="pastel")
# 示例数据
products = ["Product A", "Product B", "Product C", "Product D"]
sales = [120, 210, 150, 180]

# 创建柱状图
sns.barplot(x=products, y=sales)

# 添加标签和标题
plt.xlabel("Products")
plt.ylabel("Sales")
plt.title("Product Sales by Category")

# 显示图表
plt.show()

结果如下图所示:


绘图函数

Seaborn 提供了多个绘图函数,用于创建各种统计图形,以下是 Seaborn 主要的几个绘图函数及相应的实例:

1. 散点图 - sns.scatterplot()

用于绘制两个变量之间的散点图,可选择添加趋势线。

实例

import seaborn as sns
import matplotlib.pyplot as plt
import pandas as pd

# 创建一个示例数据框
data = {'A': [1, 2, 3, 4, 5], 'B': [5, 4, 3, 2, 1]}
df = pd.DataFrame(data)

# 绘制散点图
sns.scatterplot(x='A', y='B', data=df)
plt.show()

结果如下图所示:

2. 折线图 - sns.lineplot()

用于绘制变量随着另一个变量变化的趋势线图。

实例

import seaborn as sns
import matplotlib.pyplot as plt
import pandas as pd

# 创建一个示例数据框
data = {'X': [1, 2, 3, 4, 5], 'Y': [5, 4, 3, 2, 1]}
df = pd.DataFrame(data)

# 绘制折线图
sns.lineplot(x='X', y='Y', data=df)
plt.show()

结果如下图所示:

3. 柱状图 - sns.barplot()

用于绘制变量的均值或其他聚合函数的柱状图。

实例

import seaborn as sns
import matplotlib.pyplot as plt
import pandas as pd

# 创建一个示例数据框
data = {'Category': ['A', 'B', 'C'], 'Value': [3, 7, 5]}
df = pd.DataFrame(data)

# 绘制柱状图
sns.barplot(x='Category', y='Value', data=df)
plt.show()

结果如下图所示:

4. 箱线图 - sns.boxplot()

用于绘制变量的分布情况,包括中位数、四分位数等。

实例

import seaborn as sns
import matplotlib.pyplot as plt
import pandas as pd

# 创建一个示例数据框
data = {'Category': ['A', 'A', 'B', 'B', 'C', 'C'], 'Value': [3, 7, 5, 9, 2, 6]}
df = pd.DataFrame(data)

# 绘制箱线图
sns.boxplot(x='Category', y='Value', data=df)
plt.show()

结果如下图所示:

5. 热图 - sns.heatmap()

用于绘制矩阵数据的热图,通常用于展示相关性矩阵。

实例

import seaborn as sns
import matplotlib.pyplot as plt
import pandas as pd

# 创建一个示例数据框
data = {'A': [1, 2, 3, 4, 5], 'B': [5, 4, 3, 2, 1]}
df = pd.DataFrame(data)
# 创建一个相关性矩阵
correlation_matrix = df.corr()

# 使用热图可视化相关性矩阵
sns.heatmap(correlation_matrix, annot=True, cmap='coolwarm', fmt=".2f")
plt.show()

结果如下图所示:

核电站

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

df = pd.read_csv('nuclear.csv', delimiter=',')

countries_shortNames = [['UNITED STATES OF AMERICA', 'USA'], \
                        ['RUSSIAN FEDERATION', 'RUSSIA'], \
                        ['IRAN, ISLAMIC REPUBLIC OF', 'IRAN'], \
                        ['KOREA, REPUBLIC OF', 'SOUTH KOREA'], \
                        ['TAIWAN, CHINA', 'CHINA']]
for shortName in countries_shortNames:
    df = df.replace(shortName[0], shortName[1])
import folium
import matplotlib.cm as cm
import matplotlib.colors as colors

latitude, longitude = 40, 10.0
map_world_NPP = folium.Map(location=[latitude, longitude], zoom_start=2)

viridis = cm.get_cmap('viridis', df['NumReactor'].max())
colors_array = viridis(np.arange(df['NumReactor'].min() - 1, df['NumReactor'].max()))
rainbow = [colors.rgb2hex(i) for i in colors_array]

for nReactor, lat, lng, borough, neighborhood in zip(df['NumReactor'].astype(int), df['Latitude'].astype(float),
                                                     df['Longitude'].astype(float), df['Plant'], df['NumReactor']):
    label = '{}, {}'.format(neighborhood, borough)
    label = folium.Popup(label, parse_html=True)
    folium.CircleMarker(
        [lat, lng],
        radius=3,
        popup=label,
        color=rainbow[nReactor - 1],
        fill=True,
        fill_color=rainbow[nReactor - 1],
        fill_opacity=0.5).add_to(map_world_NPP)

# 在地图上显示
map_world_NPP.save('world_map.html')  # 保存为 HTML 文件
# 然后打开world_map.html 文件 可以看到

  • 15
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值