Python大数据可视化编程实践绘制图表.docx
- 文档编号:689531
- 上传时间:2022-10-12
- 格式:DOCX
- 页数:15
- 大小:1.10MB
Python大数据可视化编程实践绘制图表.docx
《Python大数据可视化编程实践绘制图表.docx》由会员分享,可在线阅读,更多相关《Python大数据可视化编程实践绘制图表.docx(15页珍藏版)》请在冰豆网上搜索。
Python大数据可视化编程实践绘制图表
Python数据可视化编程实践-绘制图表
准备工作
打开JupyterNotebook,导入需要的包,并配置好图片交互和中文显示环境:
importpandasaspd
importnumpyasnp
importsys
reload(sys)
sys.setdefaultencoding('utf-8')
importmatplotlibasmpl
importmatplotlib.pyplotasplt
importmatplotlib.cmascm
%matplotlibinline
plt.rcParams['font.sans-serif']=['SimHei']#用来正常显示中文标签
plt.rcParams['axes.unicode_minus']=False#用来正常显示负号
定义图表类型——柱状图、线形图和堆积柱状图
调用figure()方法,创建一个新的图表,接下来的绘图操作都在此图表中进展,参数figsize=(12,6)表示该图表的大小。
调用subplot(231)方法把图表分割成2行3列的网格,1表示图形的标号。
x=[1,2,3,4]
y=[5,4,3,2]
plt.figure(figsize=(12,6))
plt.subplot(231)
plt.plot(x,y)#折线图
plt.subplot(232)
plt.bar(x,y)#垂直柱状图
plt.subplot(233)
plt.barh(x,y)#水平柱状图
plt.subplot(234)
plt.bar(x,y)
y1=[7,8,5,3]
plt.bar(x,y1,bottom=y,color='r')#堆叠柱状图设置参数bottom=y
plt.subplot(235)
plt.boxplot(x)#箱线图
plt.subplot(236)
plt.scatter(x,y)#散点图
plt.show()
具体解释下箱线图中的几个最重要的显示选项。
首先,我们可以添加从箱体延伸出来的箱须来展示数据集合的整个X围。
箱体和箱须主要用于表现一个或多个数据集合中数据的编号,容易对数据进展比照而且易于理解。
在同一个箱线图中可以呈现5种数据。
最小值:
数据集合的最小值。
第二四分位数:
其以下为数据集合中较低的25%数据。
中值:
数据集合的中值
第三四分位数:
其以上为数据集合中较高的25%数据。
最大值:
给定数据集合的最大值。
dataset=[113,115,119,121,124,
124,125,126,126,126,
127,127,128,129,130,
130,131,132,133,136]
plt.figure(figsize=(10,6))
plt.subplot(121)
plt.boxplot(dataset,vert=False)
plt.subplot(122)
plt.hist(dataset)
plt.show()
我们用同一个数据集合来绘制箱线图和直方图,观察两种图表在数据展现上的差异。
左图呈现了五个统计数据,右图展示了数据集合在给定X围内的分组情况。
简单的正弦图和余弦图
我们对从-Pi到Pi之间具有一样线性距离的256个点来计算正弦值和余弦值,然后把sin(x)值和cos(x)值在用以图表中绘制出来。
x=np.linspace(-np.pi,np.pi,256,endpoint=True)
y=np.cos(x)
y1=np.sin(x)
plt.figure(figsize=(10,6))
plt.plot(x,y)
plt.plot(x,y1)
plt.title("Functions$\sin$and$\cos$")#设置图标题
plt.xlim(-3.0,3.0)#设置x轴X围
plt.ylim(-1.0,1.0)#设置y轴X围
plt.xticks([-np.pi,-np.pi/2,0,np.pi/2,np.pi],
[r'$-\pi$',r'$-\pi/2$',r'$0$',r'$+\pi/2$',r'$+\pi$'])#用希腊字母标注x轴标签
plt.yticks([-1,0,+1],
[r'$-1$',r'$0$',r'$+1$'])
plt.show()
设置坐标轴长度和X围
如果不实用axis()或者其他参数设置,matplotlib会自动使用最小值,刚好可以让我们在一个图中看到所有的数据点。
调用autoscale()方法,会以坐标轴的最优大小适应数据的显示。
axis()里面的值分别表示坐标轴上xmin、xmax、ymin、ymax
axhline()表示绘制了一条y=0的水平线
axvline()表示绘制了一条x=0的垂直线
axhline(4)表示绘制了一条y=4的水平线
l=[-1,1,-10,10]
plt.axis(l)
plt.axhline()
plt.axvline()
plt.axhline(4)
设置图表的线型、属性和格式化字符串
常见的线条样式:
-直线
--虚线
:
细小虚线
常见的点样式:
s--方形
h--六角形
H--六角形
*--星号
+--加好
x--x型
d--菱形
D--菱形
p--五角形
常见的颜色样式:
c-cyan--青色
r-red--红色
m-magente--品红
g-green--绿色
b-blue--蓝色
y-yellow--黄色
k-black--黑色
w-white--白色
#plot(x轴数据,y轴数据,展现形式)
x=[1,2,3,4,8]
y=[5,7,2,1,5]
plt.plot(x,y,'-',color='g',linewidth=0.8)
plt.plot(x,y,'*',color='r')#散点图
plt.show()
设置刻度、刻度标签和网格
刻度是图形的一局部,由刻度定位器〔指定刻度所在的位置〕和刻度格式器〔指定刻度显示的样式〕组成。
刻度有主刻度和次刻度,默认次刻度不显示。
locator_params()方法控制刻度定位器,可以控制刻度的数目。
plt.figure(figsize=(10,6))
#获取当前坐标
ax=plt.gca()
#设置紧凑视图,设置刻度间隔最大为10
ax.locator_params(tight=True,nbins=10)
#生成100个正态分布值
ax.plot(np.random.normal(10,.1,100))
plt.show()
使用dates模块的一个例子来说明刻度格式器的配置。
刻度格式器规定了值的显示方式。
importdatetime
fig=plt.figure(figsize=(10,6))
#获取当前的坐标轴
ax=plt.gca()
#设置一些日期区间
start=datetime.datetime(2013,01,01)
stop=datetime.datetime(2013,12,31)
delta=datetime.timedelta(days=1)
#转换日期
dates=mpl.dates.drange(start,stop,delta)
#产生一些随机值
values=np.random.rand(len(dates))
ax=plt.gca()
#用日期值画图
ax.plot_date(dates,values,linestyle='-',marker='')
#指定格式
date_format=mpl.dates.DateFormatter('%Y-%m-%d')
#应用格式
ax.xaxis.set_major_formatter(date_format)
#自动格式日期标签
fig.autofmt_xdate()
plt.show()
添加图例和注解
图例和注解清洗连贯地解释了数据图表的内容。
通过给给个plot添加一个关于所显示数据的简短描述,能让观察者更容易理解。
在每个plot中指定了一个字符串标签(label),这样legend()会把它们添加到图例框中。
通过loc参数确定图例框的位置。
annotate()可以为xy坐标位置的数据点添加字符串描述。
通过设置xycoord='data',可以指定注解和数据使用一样的坐标系,注解文本的起始位置通过xytext指定。
箭头由xytext指向xy坐标位置。
arrowstyle指定了箭头风格。
plt.figure(figsize=(10,6))
#生成不同正态分布值
x1=np.random.normal(30,3,100)
x2=np.random.normal(20,2,100)
x3=np.random.normal(10,3,100)
#在同X画布里画3条线
plt.plot(x1,label='plot')
plt.plot(x2,label='2ndplot')
plt.plot(x3,label='3ndplot')
#生成图例框
plt.legend(bbox_to_anchor=(0.,1.02,1.,.102),loc=3,ncol=3,mode="expand",borderaxespad=0.)
#注解重要值
plt.annotate("Importantvalue:
(55,20)",(55,20),xycoords='data',xytext=(5,38),arrowprops=dict(arrowstyle='->'))
plt.show()
移动轴线到图中央
轴线定义了数据区域的边界,把坐标轴刻度标记连接起来。
一共有四个轴线,可以把它们放置在任何位置。
默认情况下,它们被放置在坐标轴的边界。
为了把轴线移到图中央,需要把其中两个轴线隐藏起来〔设置color为none〕。
然后,移动另外两个到坐标〔0,0〕。
坐标为数据空间坐标。
x=np.linspace(-np.pi,np.pi,500,endpoint=True)
y=np.sin(x)
plt.plot(x,y)
ax=plt.gca()
ax.spines['right'].set_color('none')#隐藏右边的轴线
ax.spines['top'].set_color('none')#隐藏顶端的轴线
ax.spines['bottom'].set_position(('data',0))#移动底端的轴线到〔0,0〕
ax.spines['left'].set_position(('data',0))#移动左端的轴线到(0,0)
ax.xaxis.set_ticks_position('bottom')#移动底端的刻度到x轴
ax.yaxis.set_ticks_position('left')#移动左侧的刻度到x轴
plt.show()
绘制直方图
直方图被用于可视化数据的分布估计。
表示一定间隔下数据点频率的垂直矩阵称为bin。
bin以固定的间隔创建,因此直方图的总面积等于数据点的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Python 数据 可视化 编程 实践 绘制 图表