seaborn数据可视化

1、加载seaborn自带的数据集,数据集名称“car_crashes”。

(1)画出“total”列与“alcohol”列的散点图。要求:有中文标题,样式自行设计(比如:散点图的风格、颜色、形状等),最后探索这两者的关系,写出分析结果。

import seaborn as sns
import numpy as np
import pandas as pd
from matplotlib import pyplot as plt
sns.set_style('darkgrid')
# 设置中文字体
plt.rcParams['font.sans-serif'] = ['SimHei']
sns.set_style({'font.sans-serif':['simhei', 'Arial']})

data=pd.read_csv('../date/seaborn-data-master/car_crashes.csv',encoding='gbk')
# print(data)

# 1)画出“total”列与“alcohol”列的散点图。
yi=sns.scatterplot(x='alcohol',y='total',data=data,)
plt.xlabel('alcohol')
plt.ylabel('total')
plt.title('alcohol列与total列的散点图')
plt.show()

seaborn数据可视化_第1张图片

 (2)画出“total”列与“speeding”列的线图。要求:有中文标题,样式自行设,最后分析两者之间的变化规律。

sns.scatterplot(x='speeding',y='total',data=data)
sns.regplot(x='speeding',y='total',data=data)
plt.title('“total”列与“speeding”列的线图')
plt.show()

seaborn数据可视化_第2张图片

 (3)探索car_crashes数据中各特征列之间的相关性,画出对应的热力图,要求热力图有数字标识,有标题,最后对主要几列比较明显特征关系的做出结论。

df=pd.DataFrame(data)
df=df.iloc[:,0:7]
xg=df.corr()
sns.heatmap(xg,annot=True)
plt.xticks(rotation=45,fontsize=13)
plt.title('car_crashes数据热力图')
plt.show()

seaborn数据可视化_第3张图片

2、加载aqi.csv文件,探索各空气质量指数之间的关系。可视化期间解决中文字体显示的问题,设置字体为黑体,并解决保存图像时负号(-)显示为方块的问题。

seaborn数据可视化_第4张图片

(1)绘制AQI与PM2.5的关系散点图,要求根据“质量等级”的不同进行区分颜色和凸显不同的形状。并做出分析结论

import seaborn as sns
import numpy as np
import pandas as pd
from matplotlib import pyplot as plt
sns.set_style('darkgrid')
sns.set_style({'font.sans-serif':['simhei', 'Arial']})
# 设置中文字体
plt.rcParams['font.sans-serif'] = ['SimHei']
sns.set_style({'font.sans-serif':['simhei', 'Arial']})

data=pd.read_csv('D:\\subject\\数据可视化\\实验要求\\实验2\\aqi.txt')
print(data)

# 1)绘制AQI与PM2.5的关系散点图
yi=sns.scatterplot(x='AQI',y='PM2.5含量(ppm)',data=data,hue="质量等级",style="质量等级")
plt.title('AQI与PM2.5的关系散点图')
plt.show()

seaborn数据可视化_第5张图片

(2)绘制出所有数据在不同时间内AQI的指标变换情况的折线图。

df2=data.iloc[:,0:2]
df3=df2['日期'].str.split('/',expand=True)#分隔日期
df2.insert(2,'月份',df3.loc[:,1])
# print(df2)
sns.lineplot(x='月份',y='AQI',data=df2)
plt.title('2020年不同月份AQI的指标变换情况的折线图')
plt.show()

seaborn数据可视化_第6张图片

 (3)分析各空气质量指数与AQI的相关性,绘制特征相关性热力图,要求热力图有数字标识,有标题,最后做出结论。

df=data.loc[:,['AQI','PM2.5含量(ppm)','PM10含量(ppm)','SO2含量(ppm)','CO含量(ppm)','NO2含量(ppm)','O3_8h含量(ppm)']]
xg=df.corr()
sns.heatmap(xg,annot=True,fmt='.2f')
plt.xticks(rotation=45,fontsize=13)
plt.title('空气质量指数与AQI的相关性热力图')
plt.show()

 seaborn数据可视化_第7张图片

3、加载aqi.csv文件,探索各空气质量指数之间的关系。可视化期间使用seaborn库和matplotlib的函数解决中文字体显示的问题,设置字体为黑体,并解决保存图像时负号(-)显示为方块的问题,图像要有标题,其余样式自行设计。

seaborn数据可视化_第8张图片

 

import seaborn as sns
import numpy as np
import pandas as pd
from matplotlib import pyplot as plt
sns.set_style('whitegrid')
sns.set_style({'font.sans-serif':['simhei', 'Arial']})
# 设置中文字体
plt.rcParams['font.sans-serif'] = ['SimHei']
sns.set_style({'font.sans-serif':['simhei', 'Arial']})
#忽略警告
import warnings
warnings.filterwarnings('ignore')

data=pd.read_csv("D:\\subject\\数据可视化\\实验要求\\实验3\\aqi.txt")

(1)绘制一行三列的三个子图在一张画布中,其中第一个子图绘制"AQI","PM2.5含量(ppm)","PM10含量(ppm)","NO2含量(ppm)","O3_8h含量(ppm)"五列数据的箱线图,第二个子图绘制"SO2含量(ppm)"的箱线图,第三个子图绘制"CO含量(ppm)"的箱线图。

fig = plt.figure('箱线图',figsize=(10,5))
fig.add_subplot(1,3,1)
sns.boxplot(data=data[["AQI","PM2.5含量(ppm)","PM10含量(ppm)","NO2含量(ppm)","O3_8h含量(ppm)"]])
fig.add_subplot(1,3,2)
sns.boxplot(y='SO2含量(ppm)',data=data)
fig.add_subplot(1,3,3)
sns.boxplot(y='CO含量(ppm)',data=data)
plt.show()

seaborn数据可视化_第9张图片

(2)绘制空气质量等级与PM2.5含量(ppm)的分类散点图。

sns.stripplot(x='质量等级',y='PM2.5含量(ppm)',data=data)
plt.show()

seaborn数据可视化_第10张图片

 (3)使用条形图绘制不同空气质量等级下的AQI的平均值。

sns.barplot(x='质量等级',y='AQI',data=data)
plt.show()

seaborn数据可视化_第11张图片

 (4)绘制PM2.5与AQI的线性回归拟合图。

sns.regplot(x='PM2.5含量(ppm)',y='AQI',data=data)
plt.show()

seaborn数据可视化_第12张图片

4、将gdp_total.sql文件导入到mysql数据库,该数据表是2000-2019年国内生产总值的数据,使用seaborn库和matplotlib解决中文字体显示的问题,设置字体为黑体,并解决保存图像时负号(-)显示为方块的问题,图像要有标题,其余样式自行设计。

seaborn数据可视化_第13张图片

 

import seaborn as sns
import pymysql
import numpy as np
import pandas as pd
from matplotlib import pyplot as plt
sns.set_style('whitegrid')
sns.set_style({'font.sans-serif':['simhei', 'Arial']})
# 设置中文字体
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus']=False       #正常显示负号

(1)绘制第一产业增加值、第二产业增加值、第三产业增加值三者之间的相关系数热力图,并得出结论。

提示:

#连接MySQL数据库,读取数据库表数据核心代码

conn = pymysql.connect(host='127.0.0.1',port=3306,user='root',password='123123',db='stu',charset='utf8')

sql = "SELECT 年份 as year,Round(第一产业/10000,2) as primary_value,Round(第二产业/10000,2) as secondary_value,Round(第三产业/10000,2) as tertiary_value FROM gdp_total order by 年份 asc"

df = pd.read_sql(sql,conn)

'''1)绘制第一产业增加值、第二产业增加值、第三产业增加值三者之间的相关系数热力图,并得出结论。'''
conn = pymysql.connect(
    host='localhost',
    port=3306,user='root',
    password='123456',
    db='visual translation',
    charset='utf8')
sql = "SELECT 年份 as year,Round(第一产业/10000,2) as primary_value,Round(第二产业/10000,2) as secondary_value,Round(第三产业/10000,2) as tertiary_value FROM gdp_total order by 年份 asc"
df = pd.read_sql(sql,conn)

#计算皮尔逊相关系数
corr=df[['primary_value','secondary_value','tertiary_value']]
# print(corr)

#绘制相关系数热力图
plt.figure(figsize=[12,7])
sns.heatmap(corr,annot=True,fmt='.4f')
plt.show()

seaborn数据可视化_第14张图片

(2)绘制第一产业增加值与第二产业增加值之间的线性回归图,并得出结论

#连接MySQL数据库,读取数据库表数据核心代码

conn = pymysql.connect(host='127.0.0.1',port=3306,user='root',password='123123',db='stu',charset='utf8')

sql = "SELECT 年份 as year,Round(第一产业/10000,2) as primary_value,Round(第二产业/10000,2) as secondary_value,Round(第三产业/10000,2) as Tertiary_value FROM gdp_total order by 年份 asc"

df = pd.read_sql(sql,conn)

sql2=sql = "SELECT 年份 as year,Round(第一产业/10000,2) as primary_value,Round(第二产业/10000,2) as secondary_value,Round(第三产业/10000,2) as Tertiary_value FROM gdp_total order by 年份 asc"
df2=pd.read_sql(sql2,conn)
# print(df2)
sns.regplot(x='primary_value',y='secondary_value',data=df2)
plt.show()

seaborn数据可视化_第15张图片

你可能感兴趣的:(信息可视化,python,开发语言,pandas,数据分析)