我是靠谱客的博主 快乐音响,最近开发中收集的这篇文章主要介绍数据可视化,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

1.导入工具包

import matplotlib.pyplot as plt

2.解决中文和符号乱码问题

plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus']=False

3.参数设置

plt.plot(x,y,c,lw,ls,marker,markersize,markeredgecolor,markerfacecolor,label) 其中,c为颜色,lw为线条宽度,ls设置线条风格:'-'实线、‘-.’点划线、‘--’虚线,marker设置线条上点的形状:‘o’,markersize设置点的大小,markeredgecolor点的边框颜色,markerfacecolor点的填充色,label设置标签

plt.legend(loc)显示图例 loc设置图例显示位置:'upper center'、'best'...

plt.show()

4.画布设置

plt.figure(figsize,dpi,facecolor)figsize设置大小,dpi分辨率,facecolor边框颜色

plt.title()设置标题

plt.xlabel()x轴坐标名称

plt.ylabel()y轴坐标名称

plt.xlim([])确定x轴范围

plt.ylim([])确定y轴范围

plt.xticks([])设置x轴刻度 注:欲使刻度变密集,可调整步长,即传入range(a,b,c)

plt.yticks([])设置y轴刻度 range(min(y),max(y)+1)

5.图形保存

plt.savefig('路径filename.png/.pdf')

6.简单图形绘制

1)饼图

plt.pie(data,explode,labels,colors,autopct,pctdistance,labeldistance,radius,wedgeprops={'linewidth':1.5,'edgecolor':'green'},textprops={'fontsize':10,'color':''})

explode突出显示每个饼的情况,labels每块饼的标签,autopct数据显示百分比格式,如'%.1f%%',pctdistance数据标签距圆心的距离,labeldistance文本标签距圆心的距离,radius半径,wedgeprops设置饼图边,textprops设置文本。

plt.title('标题名称',pad) pad标题距坐标轴的距离

2)条形图

plt.bar(x,height,align,color,tick_label,bottom)x横坐标刻度,tick_label给刻度打标签,bottom用于绘制堆叠条形图,其中bottom的参数为当前的图形是基于什么绘制的

3)直方图(展示分布),y轴为频率

  plt.hist(x,bins,color,edgecolor,density=True) bins格子数,density=True显示频率数

4)散点图

plt.scatter(x,y,color,marker,s) s设置散点大小

进阶:画不同类别散点图

例:

colors_iris=['blue','red','yellow']
species=['a','b','c']
marker_iris=['o','s','x']
for i in range(0,3):
    plt.scatter(x=iris.Petal_Width[iris['Species'] == species[i]],y=x=iris.Petal_Length[iris['Species'] == species[i]],color=color_iris[i],marker=marker_iris[i],label=species[i])

5)核密度图 data.plot(kind='kde')

6)折线图 plt.plot(x,y,'bs--')其中'bs--'为线条风格

6)箱线图plt.boxplot(x,patch_artist=True,showmeans=True,showfliers=True,boxprops,filerprops,meanprops,medianprops) patch_artist是否填充箱线,showmeans是否展示均值,showfliers是否展示异常值,boxprops,filerprops,meanprops,medianprops设置展示属性。

7.图形基本设置

fig=plt.gcf()

设置图片大小

fig.set_size_inches(12.5,10.5)

设置网格线

plt.grid(ls='--',c='darkblue')

绘制水平参考线

plt.axhline(y,c,ls,lw) c颜色,ls线条风格,lw线条宽度

绘制垂直参考线

plt.axvline(x)

绘制垂直参考区域

plt.axvspan(xmin,xmax,facecolor,alpha) alpha深度

绘制水平参考区域

plt.axhspan(ymin,ymax)

将图例设置在图形外部

plt.legend(bbox_to_anchor=(a,b))其中a指距离最左边a个单位长度,b指距离下方b个单位长度

8.完善统计图形

1)调整图例位置

plt.legend(bbox_to_anchor,title)

2)平移画布

ax=fig.add_axes()

3)调整刻度轴,如把x轴数据显示成日期类型:

import matplotlib as mpl
ax=plt.gca() # 获取坐标信息
date_format=mpl.dates.DataFormatter('%Y-%m-%d')
ax.xaxis.set_major_formatter(date_format)
xlocator=mpl.ticker.LinearLocator(20)
ax.xaxis_set_major_locator(xlocator)

4)调整标签角度

plt.xticks(rotation=45)

5)图形添加内容

无指向性注释文本:plt.text(a,b,'注释内容') a,b分别为x,y坐标的起始位置。

有指向性注释文本:plt.annotate('注释内容',xy=(a,b),xytext=(c,d),arrowprops=dict(arrowstyle='->',connectionstyle='arc3',color)) xy为箭头指向位置,xytext为注释文本位置。

9.高级操作

1)双坐标轴

fig=plt.figure()

ax1=fig.add_subplot(111)

ax1.plot(x,y,label)

ax1.set_ylabel('标签内容')

ax2=ax1.twinx()

ax2.plot(x,y,color,label)

2)多个图形合并

plt.figure(figsize=(16,9))

plt.subplot(121)

plt.plot(x,y,c='c')

plt.subplot(122)

...

10.seaborn:封装画图函数,更容易地绘制精致图形

调用方式:

1)plt.style.use('seaborn')

2)import seaborn as sns

sns.set(style='darkgrid')

3)sns.barplot(x,y,data,color,hue,orient) hue设置图例,orient为'vertical'或'v'时,绘制竖直直方图;为'h'时,绘制水平直方图,但要注意对换x、y

sns.scatterplot()

sns.boxplot()

sns.distplot(norm_hist=True)以频率形式展示

直方图加正态分布图:sns.distplot(data,hist=False,fit=norm,fit_kws,norm_hist=True)

折线图:sns.lineplot()

回归:sns.lmplot(x,y,data,legend+out=False,markers,fit_reg=True,aspect,height,scatter_kws)

分组绘图,如绘制不同地区不同交通工具的订单量:

sns.countplot(x='Region',data=Prod_Trade,hue='Transport')hue用于分类

11.plotly交互动态,精美制图

import plotly as py

import plotly.graph_ogjs as go

1)绘制散点图

from plotly.graph_ogjs import Scatter
trace0=Scatter(x,y,mode='markers',name) # name打标签
trace1=Scatter(x,y,mode='lines',name)
data=[trace0,trace1]
py.offline.iplot(data,filename)

2)绘制堆积直方图

trace_basic=go.Bar()
layout=go.Layout(title,xaxis=dict(title),barmode='stack')
figure_basic=go.Figure(data,layout)
pyplot(figure_basic)

3)绘制饼图

trace=[go.Pie(labels,data.values.tolist(),hole,textfont)] # hole空心部分
layout=go.Layout()
fig=go.Figure(data=trace,layout=layout)
pyplot(fig)

4)双坐标设置

layout=go.Layout(yaxis2=dict(title,overlaying='y',side='right') 
# 第2个坐标轴设置在y轴右侧

5)多图形绘制

from plotly import tools
fig=tools.make_subplots(rows=2,cols=1)
trace1
trace2
fig.append_trace(trace1,1,1)
fig.append_trace(trace2,2,1)
fig['layout'].update(height,width,title)
pyplot(fig)

最后

以上就是快乐音响为你收集整理的数据可视化的全部内容,希望文章能够帮你解决数据可视化所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(33)

评论列表共有 0 条评论

立即
投稿
返回
顶部