可视化
选择填空
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ViU3yFJ2-1610202896444)(C:\Users\chen5\AppData\Roaming\Typora\typora-user-images\image-20210109220732123.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hTc84SKn-1610202896446)(C:\Users\chen5\AppData\Roaming\Typora\typora-user-images\image-20210109220740081.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FsbbmByv-1610202896447)(C:\Users\chen5\AppData\Roaming\Typora\typora-user-images\image-20210109220747287.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1HInZjmy-1610202896449)(C:\Users\chen5\AppData\Roaming\Typora\typora-user-images\image-20210109220752376.png)]
pandas存储和读写参考:https://blog.csdn.net/weixin_40041218/article/details/79246883?ops_request_misc=%25257B%252522request%25255Fid%252522%25253A%252522161020249216780273621306%252522%25252C%252522scm%252522%25253A%25252220140713.130102334.pc%25255Fall.%252522%25257D&request_id=161020249216780273621306&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allfirst_rank_v2~rank_v29-1-79246883.pc_search_result_cache&utm_term=pandas%E8%AF%BB%E5%86%99%EF%BC%8C%E5%AD%98%E5%82%A8
1、Matplotlib
第一个Python可视化库,有许多别的程序库都是建立在其基础上或者直接调用该库,可以很方便地得到数据的大致信息,功能非常强大,但也非常复杂。
2、Seaborn
利用了Matplotlib,用简洁的代码来制作好看的图表。与Matplotlib最大的区别为默认绘图风格和色彩搭配都具有现代美感。
3、ggplot2
基于R的一个作图库ggplot2,同时利用了源于《图像语法》(The Grammar of Graphics)中的概念,允许叠加不同的图层来完成一幅图,并不适用于制作非常个性化的图像,为操作的简洁度而牺牲了图像的复杂度。
4、Bokeh
跟ggplot一样,Bokeh也基于《图形语法》的概念。与ggplot不同之处为它完全基于Python而不是从R处引用。长处在于能用于制作可交互、可直接用于网络的图表。图表可以输出为JSON对象、HTML文档或者可交互的网络应用。
5、pygal
与Bokeh和Plotly一样,提供可直接嵌入网络浏览器的可交互图像。与其他两者的主要区别在于可将图表输出为SVG格式,所有的图表都被封装成方法,且默认的风格也很漂亮,用几行代码就可以很容易地制作出漂亮的图表。
6、geoplotlib
用于制作地图和地理相关数据的工具箱。可用来制作多种地图,比如等值区域图、热度图、点密度图。必须安装Pyglet(一个面向对象编程接口)方可使用。
7、missingno
用图像的方式快速评估数据缺失的情况,可根据数据的完整度对数据进行排序或过滤,或者根据热度图或树状图对数据进行修正。
简答题
-
series操作
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-I1Hp8JgS-1610202896452)(C:\Users\chen5\AppData\Roaming\Typora\typora-user-images\image-20210109222235324.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BujTVzS8-1610202896453)(C:\Users\chen5\AppData\Roaming\Typora\typora-user-images\image-20210109222240696.png)]
series创建
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tcni1F3r-1610202896454)(C:\Users\chen5\AppData\Roaming\Typora\typora-user-images\image-20210109221715722.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CdBeNrPT-1610202896455)(C:\Users\chen5\AppData\Roaming\Typora\typora-user-images\image-20210109221725423.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oVszAP4x-1610202896455)(C:\Users\chen5\AppData\Roaming\Typora\typora-user-images\image-20210109221737611.png)]
加载访问
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Nr1DhQ7d-1610202896456)(C:\Users\chen5\AppData\Roaming\Typora\typora-user-images\image-20210109222401414.png)]
-
dataframe
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MLA05TyY-1610202896457)(C:\Users\chen5\AppData\Roaming\Typora\typora-user-images\image-20210109222107280.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fvD72MQm-1610202896457)(C:\Users\chen5\AppData\Roaming\Typora\typora-user-images\image-20210109222112404.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-q3bUM9T3-1610202896458)(C:\Users\chen5\AppData\Roaming\Typora\typora-user-images\image-20210109222116549.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pF9h7Apk-1610202896459)(C:\Users\chen5\AppData\Roaming\Typora\typora-user-images\image-20210109222124490.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gUoqBSIh-1610202896459)(C:\Users\chen5\AppData\Roaming\Typora\typora-user-images\image-20210109222129615.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cKcHQIam-1610202896460)(C:\Users\chen5\AppData\Roaming\Typora\typora-user-images\image-20210109222135355.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FfrxPPUT-1610202896462)(C:\Users\chen5\AppData\Roaming\Typora\typora-user-images\image-20210109222139953.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aUSdrKvP-1610202896463)(C:\Users\chen5\AppData\Roaming\Typora\typora-user-images\image-20210109222147725.png)]
-
matplotlib
绘图基本流程
-
创建画布与创建子图
-
添加画布内容
-
保存于展示图形
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9mn8TxH2-1610202896463)(C:\Users\chen5\AppData\Roaming\Typora\typora-user-images\image-20210109215723817.png)]
-
折线图是一种将数据点按照顺序连接起来的图形。可以看作是将散点图,按照x轴坐标顺序连接起来的图形。折线图的主要功能是查看因变量y随着自变量x改变的趋势,最适合用于显示随时间(根据常用比例设置)而变化的连续数据。同时还可以看出数量的差异,增长趋势的变化。
-
饼图是将各项的大小与各项总和的比例显示在一张“饼”中,以“饼”的大小来确定每一项的占比。饼图可以比较清楚地反映出部分与部分、部分与整体之间的比例关系,易于显示每组数据相对于总数的大小,而且显现方式直观。
-
直方图又称质量分布图,是统计报告图的一种,由一系列高度不等的纵向条纹或线段表示数据分布的情况,一般用横轴表示数据所属类别,纵轴表示数量或者占比。用直方图可以比较直观地看出产品质量特性的分布状态,便于判断其总体质量分布情况。直方图可以发现分布表无法发现的数据模式、样本的频率分布和总体的分布。
-
箱线图也称箱须图,其绘制需使用常用的统计量,能提供有关数据位置和分散情况的关键信息,尤其在比较不同特征时,更可表现其分散程度差异。箱线图利用数据中的五个统计量(最小值、下四分位数、中位数、上四分位数和最大值)来描述数据,它也可以粗略地看出数据是否具有对称性、分布的分散程度等信息,特别可以用于对几个样本的比较。
图形适用场景总结
-
散点图:适用于分析特征间相关关系
-
折线图:适用于分析特征间趋势关系
-
**饼状图:适用于分析特征内部数据分布(**比例)
-
**直方图:适用于分析特征内部数据分布(**数量)
-
箱线图:适用于分析特征内部数据分散情况
-
-
bokeh绘图步骤
步骤一:准备数据
步骤二:决定数据可视化的呈现位置output_file(‘filename.html’) # 生成一个静态HTML文件, output_notebook() # 在Jupyter Notebook中内联呈现
步骤三:设置图形
fig = figure() # 实例化一个 figure() 对象
步骤四:连接并绘制数据
步骤五:组织布局
步骤六:预览和保存show(fig) # 查看已做的,并保存喜欢的
代码题
-
bokeh
-
导包
import numpy as np import pandas as pd import matplotlib.pyplot as plt %matplotlib inline from bokeh.plotting import figure,show # 导入图表绘制、图表展示模块 from bokeh.io import output_notebook # 导入notebook绘图模块 output_notebook()
-
绘制散点图
ps:
np.random.RandomState(1):当参数为常数时,生成的数据为恒定数据,这样每次我们生成的图表都是一样的;
np.random.randn():以给定的形状创建一个数组,数组元素符合标准正态分布N(0,1) ; np.random.randint():生成在指定的半开半闭区间[low,high)上离散均匀分布的整数值; np.random.choice():从指定数列中随机选择值;
rng = np.random.RandomState(1) df = pd.DataFrame(rng.randn(100,2)*100,columns = ['A','B']) df['size'] = rng.randint(10,30,100) # 设置点大小字段 df['color1'] = np.random.choice(['red', 'green', 'blue'], 100) # 设置点的颜色 print(df.head()) # 预览前5条数据 # 创建绘图空间 p = figure(plot_width=600, plot_height=400) p.circle(df['A'], df['B'], # 设置散点图(x,y)值 line_color = 'white', # 设置点边线为白色 fill_color = df['color1'],fill_alpha = 0.5, # 设置内部填充颜色,这里用到了颜色字段 size = df['size'] # 设置点大小,按照size的随机数去设置点的大小 ) show(p)
-
绘制折线图
# 导入ColumnDataSource模块:可以将dict、Dataframe、group对象转化为ColumnDataSource对象 from bokeh.models import ColumnDataSource # 创建数据 df = pd.DataFrame({'value':np.random.randn(100).cumsum()}) df.index.name = 'index' # 转化为ColumnDataSource对象:这里注意了,index和columns都必须有名称字段 source = ColumnDataSource(data = df) p = figure(plot_width=600, plot_height=400) # 绘制折线图 p.line(x='index',y='value',source = source, # 设置x,y值, source :指定数据源 line_width=1, line_alpha = 0.8, line_color = 'black',line_dash = [10,4]) # 线型基本设置 # 绘制折点 p.circle(x='index',y='value',source = source, size = 2,color = 'red',alpha = 0.8) show(p)
-
-
pyecharts
-
条形图
-
单变量条形图
bar = Bar("我的第一个图表", "这里是副标题") #bar=Bar("主标题","副标题") bar.add("服装", ["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"],[5, 20, 36, 10, 75, 90]) #bar.add() bar
-
双变量条形图
attr = ["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"] v1 = [5, 20, 36, 10, 75, 90] v2 = [10, 25, 8, 60, 20, 80] bar = Bar("双变量垂直条形图","标记线和标记点示例") bar.add("商家A", attr, v1, mark_point=["average"]) bar.add("商家B", attr, v2, mark_line=["min", "max"]) #mark_point:添加点标记 #mark_line:添加线标记 #bar.render() bar
-
水平条形图数据堆叠
attr = ["衬衫","羊毛衫","雪纺衫","裤子","高跟鞋","袜子"] v1 = [5,20,36,10,75,90] v2 = [10,25,8,60,20,80] bar = Bar("水平条形图数据堆叠示例") bar.add("商家A", attr, v1,is_stack=True,mark_point=['average']) bar.add("商家B", attr, v2,is_stack=True,is_convert=True) bar
-
-
折线图
-
from pyecharts import Line attr =["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"] v1 =[5, 20, 36, 10, 10, 100] v2 =[55, 60, 16, 20, 15, 80] line =Line("折线图") line.add("商家A", attr, v1,mark_point=["max","min"]) line.add("商家B", attr, v2,mark_line=["average"]) #line.render() line
-
-
饼图
-
饼图
from pyecharts import Pie attr=["衬衫","羊毛衫","雪纺衫","裤子","帽子"] v1=[10,20,30,40,50] pie=Pie("产品销售") pie.add("z",attr,v1,is_label_show=True) pie.render() pie
-
环图
from pyecharts import Pie attr=["衬衫","羊毛衫","雪纺衫","裤子","帽子"] v1=[10,20,30,40,50] pie=Pie("产品销售-环形图",title_pos='center') pie.add("z",attr,v1,is_label_show=True,radius=[30,60],label_text_color=None,\ legend_orient='vertical',legend_pos='right') #pie.render() pie
-
概括
条形图导包from pyecharts import Bar
bar = Bar(“主标题”, “副标题”)
bar.add(变量名,名称,值) ps:可以先将数据存储到列表里
在add中添加参数:
mark_point=[“min”,“max”,“average”]:添加点标记
mark_line=[“min”,“max”,“average”]:添加线标记 is_stack=True:多个变量同时为true才会堆叠
is_convert=True:调换x,y轴,在画图时,只需将最后一个条形图倒置即可
bar直接显示图表
bar.render()生成本地html文件
折线图导包from pyecharts import Line
同条形图
饼图导包from pyecharts import Pie
在add中添加参数:
is_label_show= True:显示数据项信息
radius=[30,60]:饼图半径
label_text_color:标签文本颜色
legend_orient=‘vertical’:图例显示方向
legend_pos=[“百分比”,‘left’, ‘center’, ‘right’]:距离左边距离
legend_top=[“百分比”,‘left’, ‘center’, ‘right’] :距离上边的位置
-
ine
同条形图
饼图导包from pyecharts import Pie
在add中添加参数:
is_label_show= True:显示数据项信息
radius=[30,60]:饼图半径
label_text_color:标签文本颜色
legend_orient=‘vertical’:图例显示方向
legend_pos=[“百分比”,‘left’, ‘center’, ‘right’]:距离左边距离
legend_top=[“百分比”,‘left’, ‘center’, ‘right’] :距离上边的位置