seaborn的一些画图

一.数据查看

数据集地址,用红白酒为例.

import pandas as pd
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
import matplotlib as mpl
import numpy as np
import seaborn as snswhite_wine = pd.read_csv('winequality-white.csv', sep=';')
red_wine = pd.read_csv('winequality-red.csv', sep=';')# store wine type as an attribute
red_wine['wine_type'] = 'red'
white_wine['wine_type'] = 'white'# bucket wine quality scores into qualitative quality labels
red_wine['quality_label'] = red_wine['quality'].apply(lambda value: 'low'if value <= 5 else 'medium'if value <= 7 else 'high')
red_wine['quality_label'] = pd.Categorical(red_wine['quality_label'],categories=['low', 'medium', 'high'])
white_wine['quality_label'] = white_wine['quality'].apply(lambda value: 'low'if value <= 5 else 'medium'if value <= 7 else 'high')
white_wine['quality_label'] = pd.Categorical(white_wine['quality_label'],categories=['low', 'medium', 'high'])# merge red and white wine datasets
wines = pd.concat([red_wine, white_wine])# print('wines.head()\n', wines.head())
# re-shuffle records just to randomize data points
wines = wines.sample(frac=1, random_state=42).reset_index(drop=True)
print('wines.head()\n', wines.head())subset_attributes = ['residual sugar', 'total sulfur dioxide', 'sulphates','alcohol', 'volatile acidity', 'quality']
rs = round(red_wine[subset_attributes].describe(), 2)
ws = round(white_wine[subset_attributes].describe(), 2)rs_ws = pd.concat([rs, ws], axis=1, keys=['Red Wine Statistics', 'White Wine Statistics'])

二.数据分析

1.每个特性 都做直方图

wines.hist(bins=15, color='steelblue', edgecolor='black', linewidth=1.0,xlabelsize=8, ylabelsize=8, grid=False, figsize=(12.8, 9.6))
# plt.tight_layout(rect=(0, 0, 1.2, 1.2))
plt.savefig('./wines_analysis.jpg')

2.sulphates属性做直方图和核密度估计

fig = plt.figure(figsize=(6, 4))
title = fig.suptitle("Sulphates Content in Wine", fontsize=14)
fig.subplots_adjust(top=0.85, wspace=0.3)ax = fig.add_subplot(1, 1, 1)
ax.set_xlabel("Sulphates")
ax.set_ylabel("Frequency")
ax.text(1.2, 800, r'$\mu$='+str(round(wines['sulphates'].mean(), 2)),fontsize=12)
freq, bins, patches = ax.hist(wines['sulphates'], color='steelblue', bins=15,edgecolor='black', linewidth=1)
plt.savefig('./sulphates_historm_analysis.jpg')# Density Plot
fig = plt.figure(figsize = (6, 4))
title = fig.suptitle("Sulphates Content in Wine", fontsize=14)
fig.subplots_adjust(top=0.85, wspace=0.3)ax1 = fig.add_subplot(1, 1, 1)
ax1.set_xlabel("Sulphates")
ax1.set_ylabel("Frequency")
sns.kdeplot(wines['sulphates'], ax=ax1, shade=True, color='steelblue')
plt.savefig('./sulphates_Density_analysis.jpg')

 3.对属性相关性 进行热力图分析

# Correlation Matrix Heatmap
f, ax = plt.subplots(figsize=(10, 6))
corr = wines.corr()
hm = sns.heatmap(round(corr,2), annot=True, ax=ax, cmap="coolwarm",fmt='.2f',linewidths=.05)
f.subplots_adjust(top=0.93)
t= f.suptitle('Wine Attributes Correlation Heatmap', fontsize=14)
plt.savefig('./Wine_Attributes_Correlation_Heatmap.jpg')

4.seaborn一幅图画两个对比的直方图

# Multi-bar Plot
plt.figure()
cp = sns.countplot(x="quality", hue="wine_type", data=wines,palette={"red": "#FF9999", "white": "#FFE888"})
plt.savefig('./quality_wine_type.jpg')

  

 5. 用箱线图表示质量和浓度关系

f, (ax) = plt.subplots(1, 1, figsize=(12, 4))
f.suptitle('Wine Quality - Alcohol Content', fontsize=14)sns.boxplot(x="quality", y="alcohol", data=wines,  ax=ax)
ax.set_xlabel("Wine Quality", size=12, alpha=0.8)
ax.set_ylabel("Wine Alcohol %", size=12, alpha=0.8)
plt.savefig('./box_quality_Alcohol.jpg')

 

6. 3d view 

fig = plt.figure(figsize=(8, 6))
ax = fig.add_subplot(111, projection='3d')xs = wines['residual sugar']
ys = wines['fixed acidity']
zs = wines['alcohol']
ax.scatter(xs, ys, zs, s=50, alpha=0.6, edgecolors='w')ax.set_xlabel('Residual Sugar')
ax.set_ylabel('Fixed Acidity')
ax.set_zlabel('Alcohol')
plt.savefig('./3d_view.jpg')

7. 用气泡图2d做3d数据的可视化 

plt.figure()
# Visualizing 3-D numeric data with a bubble chart
# length, breadth and size
plt.scatter(wines['fixed acidity'], wines['alcohol'], s=wines['residual sugar']*25,alpha=0.4, edgecolors='w')plt.xlabel('Fixed Acidity')
plt.ylabel('Alcohol')
plt.title('Wine Alcohol Content - Fixed Acidity - Residual Sugar',y=1.05)
plt.savefig('./2d_bubble_view.jpg')

8.用seaborn按照不同质量去分类画直方图

# Visualizing 3-D categorical data using bar plots
# leveraging the concepts of hue and facets
plt.figure()
fc = sns.factorplot(x="quality", hue="wine_type", col="quality_label",data=wines, kind="count",palette={"red": "#FF9999", "white": "#FFE888"})
plt.savefig('./seaborn_quality_classify.jpg')

9.用seaborn 查看两个变量的核密度图

plt.figure()
ax = sns.kdeplot(white_wine['sulphates'], white_wine['alcohol'],cmap="YlOrBr", shade=True, shade_lowest=False)
ax = sns.kdeplot(red_wine['sulphates'], red_wine['alcohol'],cmap="Reds", shade=True, shade_lowest=False)
plt.savefig('./seaborn_see_density.jpg')

 

10. 可视化四维数据用颜色区分

# Visualizing 4-D mix data using scatter plots
# leveraging the concepts of hue and depth
fig = plt.figure(figsize=(8, 6))
t = fig.suptitle('Wine Residual Sugar - Alcohol Content - Acidity - Type', fontsize=14)
ax = fig.add_subplot(111, projection='3d')xs = list(wines['residual sugar'])
ys = list(wines['alcohol'])
zs = list(wines['fixed acidity'])
data_points = [(x, y, z) for x, y, z in zip(xs, ys, zs)]
colors = ['red' if wt == 'red' else 'yellow' for wt in list(wines['wine_type'])]for data, color in zip(data_points, colors):x, y, z = dataax.scatter(x, y, z, alpha=0.4, c=color, edgecolors='none', s=30)ax.set_xlabel('Residual Sugar')
ax.set_ylabel('Alcohol')
ax.set_zlabel('Fixed Acidity')
plt.savefig('./view_4d_by_3d.jpg')

11.可视化4d数据 只不过用二维图片 加入大小

# Visualizing 4-D mix data using bubble plots
# leveraging the concepts of hue and size
size = wines['residual sugar']*25
fill_colors = ['#FF9999' if wt=='red' else '#FFE888' for wt in list(wines['wine_type'])]
edge_colors = ['red' if wt=='red' else 'orange' for wt in list(wines['wine_type'])]plt.scatter(wines['fixed acidity'], wines['alcohol'], s=size,alpha=0.4, color=fill_colors, edgecolors=edge_colors)plt.xlabel('Fixed Acidity')
plt.ylabel('Alcohol')
plt.title('Wine Alcohol Content - Fixed Acidity - Residual Sugar - Type',y=1.05)
plt.savefig('./view_4d_by_2d.jpg')

 

12. 可视化5d数据 用3d加大小和颜色

# Visualizing 5-D mix data using bubble charts
# leveraging the concepts of hue, size and depth
fig = plt.figure(figsize=(8, 6))
ax = fig.add_subplot(111, projection='3d')
t = fig.suptitle('Wine Residual Sugar - Alcohol Content - Acidity - Total Sulfur Dioxide - Type', fontsize=14)xs = list(wines['residual sugar'])
ys = list(wines['alcohol'])
zs = list(wines['fixed acidity'])
data_points = [(x, y, z) for x, y, z in zip(xs, ys, zs)]ss = list(wines['total sulfur dioxide'])
colors = ['red' if wt == 'red' else 'yellow' for wt in list(wines['wine_type'])]for data, color, size in zip(data_points, colors, ss):x, y, z = dataax.scatter(x, y, z, alpha=0.4, c=color, edgecolors='none', s=size)ax.set_xlabel('Residual Sugar')
ax.set_ylabel('Alcohol')
ax.set_zlabel('Fixed Acidity')
plt.savefig('./view_5d_by_3d.jpg')

 13.可视化6d数据 用3d加大小,颜色和形状

fig = plt.figure(figsize=(8, 6))
t = fig.suptitle('Wine Residual Sugar - Alcohol Content - Acidity - Total Sulfur Dioxide - Type - Quality', fontsize=14)
ax = fig.add_subplot(111, projection='3d')xs = list(wines['residual sugar'])
ys = list(wines['alcohol'])
zs = list(wines['fixed acidity'])
data_points = [(x, y, z) for x, y, z in zip(xs, ys, zs)]ss = list(wines['total sulfur dioxide'])
colors = ['red' if wt == 'red' else 'yellow' for wt in list(wines['wine_type'])]
markers = [',' if q == 'high' else 'x' if q == 'medium' else 'o' for q in list(wines['quality_label'])]for data, color, size, mark in zip(data_points, colors, ss, markers):x, y, z = dataax.scatter(x, y, z, alpha=0.4, c=color, edgecolors='none', s=size, marker=mark)ax.set_xlabel('Residual Sugar')
ax.set_ylabel('Alcohol')
ax.set_zlabel('Fixed Acidity')
plt.savefig('./view_6d_by_3d.jpg')

 

参考

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/493058.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

后摩尔定律时代的芯片新选择!

来源&#xff1a;gizmodo摘要&#xff1a;很长一段时间以来&#xff0c;摩尔定律和它的最终结局一直就像房间里的大象&#xff0c;不容忽视。英特尔联合创始人戈登摩尔在1965年的一篇论文中预测&#xff0c;芯片中的晶体管数量每年将翻一番。更多的晶体管意味着更快的速度&…

MSE和Cross-entropy梯度更新比较

一.平方损失(MSE) Loss函数: 梯度: 由于x,y是已知的&#xff0c;故可以忽略掉 梯度更新: sigmoid函数: 可以看出 导数在z取大部分值&#xff0c;都是很小的&#xff0c;这样会使梯度更新慢&#xff0e; y为1或0是&#xff0c;当a1,w的梯度为0,a0,w的梯度为0&#xff0c;故就…

麦卡锡问答:什么是人工智能?

来源&#xff1a;科学网一、基本问题问&#xff1a;什么是人工智能&#xff1f;答&#xff1a;人工智能是研制智能机器尤其是智能计算机程序的科学与工程。它与使用计算机理解人类智能类似&#xff0c;但人工智能并不将它自己局限于生物意义上的方法。问&#xff1a;是的&#…

操作系统--多进程管理CPU

一.cpu管理直观做法 最只管想法cpu循环取址执行&#xff0c;所以只需要设好pc初值即可 存在问题:io会占用时间长&#xff0c;导致cpu利用率低. 所以需要不停切换&#xff0c;执行多个程序&#xff0c;也就是并发&#xff0e; 但是在切换的时候&#xff0c;除了记录返回地址&a…

胶囊网络、边缘计算:2018年13个最新人工智能发展趋势

来源&#xff1a;亿欧智库摘要&#xff1a; 美国知名研究机构CB Insights的报告《2018年必看的人工智能热门趋势》&#xff0c;对AI行业发展现状进行了深入研究剖析&#xff0c;并给出了2018年AI领域最值得关注的13个前沿发展趋势。趋势一&#xff1a;新蓝领的工作——机器人保…

清空输入缓冲区fflush()

转自&#xff1a;http://blog.csdn.net/21aspnet/article/details/174326 scanf( )函数可以接收输入的换行符&#xff0c;\n,(asci为10)&#xff0c;利用函数fflush(stdin),可以清空输入内存缓冲区。 // function name fflush // 清空一个流 ,2014--03--29 #include <std…

操作系统--用户级线程与内核级线程

一.多进程是操作系统基本图像 进程都是在内核进行 二.用户级线程 2.1线程引入 可以切指令不切表&#xff0c;也就是资源不动&#xff0c;指令执行分开&#xff0c;更加轻量化&#xff0c;从而提高效率&#xff0c;保留并发优点&#xff0c;避免进程切换代价&#xff0c;也就…

“新视野”和“最远点”的约会

NASA 设想的2014 MU69 太空岩石 来源&#xff1a;中国科学报当新年香槟将陌生人聚在一起时&#xff0c;一种不同的聚会正在外太阳系进行。在距地球近65亿公里的地方&#xff0c;美国宇航局&#xff08;NASA&#xff09;“新视野”号探测器创下了寻访迄今最遥远世界的纪录。这场…

C语言里的写文件

转载自&#xff1a;http://blog.csdn.net/shuimuzhiyuan/article/details/6908335 部分转载自&#xff1a;http://blog.csdn.net/lijun5635/article/details/13095883 一 、fopen()函数中第一个形式参数表示文件名, 可以包含路径和文件名两部分。如: "B:TEST.DAT"…

操作系统--内核级线程实现

五段论 &#xff1a; 进入内核靠的是中断&#xff0c;fork是创建系统进程调用&#xff0c;进程由资源&#xff0b;执行序列组成&#xff0c;而创建执行序列其实就是创建线程&#xff0e; TSS:任务结构段 参考&#xff1a; 操作系统_哈尔滨工业大学_中国大学MOOC(慕课)…

一文看尽2018全年计算机视觉大突破

来源&#xff1a;极市平台摘要&#xff1a;计算机视觉领域同样精彩纷呈&#xff0c;与四年前相比GAN生成的假脸逼真到让人不敢相信&#xff1b;新工具、新框架的出现&#xff0c;也让这个领域的明天特别让人期待……2018&#xff0c;仍是AI领域激动人心的一年。计算机视觉领域同…

leetcode BFS(python+c++)

1.最小基因变化 思路&#xff1a;bfs搜索回溯 python: class Solution:def minMutation(self, start: str, end: str, bank: List[str]) -> int:library [A,C, G,T]queue [start]num 0vis set()while queue:size len(queue)for i in range(size):cur queue.pop(0)i…

北欧小国的宏大AI实验: 让1%的人口接受人工智能培训

编译&#xff1a; 机器之能 微胖摘要&#xff1a;芬兰希望在人工智能的实际应用方面占据一席之地&#xff0c;成为世界领先国家。2017 年 10 月&#xff0c;芬兰成为欧盟第一个将国家人工智能战略付诸实施的国家。在 2018 年 6 月发布的第二份报告中&#xff0c;政府估计&#…

形象理解矩阵操作

1.矩阵和向量线性变换 线性变换可看着是对空间的挤压伸展。 也就是看成把向量中的值对矩阵列向量加权 ,在对向量求和 2.矩阵和矩阵的线性变换 矩阵左乘就是对行向量操作&#xff0c;矩阵右乘就是对列向量操作&#xff0e; 可以将其中一个矩阵看成是多个列向量,在拆开对剩下矩…

CSAPP-计算机漫游

一.编译系统的工作流程: test.cpp #include <iostream> using namespace std; int main() { //hahha cout<<"hello world"<<endl; return 0; }直接生成可执行程序test g -o test test.cpp 深入解析生成可执行程序test的过程 1.g -E test.cpp &…

报告:下一代技术革命“AI”来袭

来源&#xff1a;199IT互联网数据中心摘要&#xff1a;Rolandberger发布了新报告“下一代技术革命‘AI’来袭”&#xff0c;分析了人们是否准备好迎接下一代技术革命。快进到2017年&#xff0c;我们正处于人工智能&#xff08;AI&#xff09;革命的风口浪尖。它会影响经济、工业…

CSAPP--信息的表示与处理

虚拟地址空间: 大多数 Intel 兼容机采用小端模式,IBM 和 Sun 公司的机器大多数机器采用大端法。 对于很多新的处理器,支持双端法,可以配置成大端或者小端运行。例如基于 ARM 架构的处理器,支持双端法,但是 Android 系统和 iOS 系统却只能运行在小端模式. 下面是代码测试,获取1…

各国自动驾驶政策概况及特征

来源&#xff1a;中国信息通信研究院CAICT摘要&#xff1a;主要国家自动驾驶技术的研发、测试、法规、政策等方面的储备和进展。近年来&#xff0c;美、欧、日等发达国家和地区将自动驾驶技术作为交通未来发展的重要方向&#xff0c;在技术研发、道路测试、标准法规、政策等方面…

CSAPP--整数的表示

一.非负数与负数编码以及最值 非负数编码: 负数编码&#xff08;采用补码即原码取反1&#xff09;: 故对于四位补码&#xff0c;最大值为7,最小值为-8 所以各类型负数/非负数范围: 不同字节无符号最大值 不同字节有符号最大值 不同字节有符号最小值 例子1:有符号强制转换无…

一文看懂全球半导体格局

来源&#xff1a;华泰证券中国半导体产业链渐趋完善&#xff0c;产业生态体系逐步成形目前我国垂直分工模式的芯片产业链初步搭建成形&#xff0c;产业上中下游已然打通&#xff0c;涌现出一批实力较强的代表性本土企业。集成电路是基础性、先导性产业&#xff0c;涉及国家信息…