概述
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)
最后
以上就是快乐音响为你收集整理的数据可视化的全部内容,希望文章能够帮你解决数据可视化所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复