Python—数据分析与可视化编程
⽬标:
掌握numpy模块基本操作;
掌握matplotlib模块基础操作;
掌握pandas模块基础操作。
内容:
1.编写程序,利⽤pyplot将绘图区域划分成2*1个⼦绘图区域,并在每个区域中⽣成坐标系,如下图:(提⽰:直线数组为np.arange(0, 101))
2.现有如图9-15所⽰的股票数据:
按以下要求操作。
(1)仿照图9-15的表格,创建⼀个DataFrame对象。
(2)使⽤条形图展⽰股票数据,其中证券简称为x轴、最新价为y轴。
(3)将条形图以shares——bar.png为⽂件名保存在桌⾯上。
步骤:
1.编写程序,利⽤pyplot将绘图区域划分成2*1个⼦绘图区域,并在每个区域中⽣成坐标系,如下图:(提⽰:直线数组为np.arange(0, 101))
代码如下:
# -*- coding: utf-8 -*-
import numpy as np
import matplotlib.pyplot as plt
data = np.arange(0,101)
plt.subplot(211)
plt.plot(data.data)
plt.subplot(212)
plt.plot(data,-data)
plt.show()
2.现有如图9-15所⽰的股票数据:
用subplot函数按以下要求操作。
(1)仿照图9-15的表格,创建⼀个DataFrame对象。
(2)使⽤条形图展⽰股票数据,其中证券简称为x轴、最新价为y轴。(3)将条形图以shares——bar.png为⽂件名保存在桌⾯上。
代码如下:
# -*- coding: utf-8 -*-
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
np.arange(0,11)
###(1)仿照图9-15的表格,创建⼀个DataFrame对象###
df=pd.DataFrame({'证券代码 ':['000609','000993','002615','000795','002766', '000971','000633','300173','30 0279','000831'],
'证券简称':['中迪投资','闽东电⼒','哈尔斯','英洛华','索菱股份',
'⾼升控投','合⾦投资','智慧松德','和晶科技','五矿稀⼟'],
'最新价':[4.80,4.80,5.02,3.93,6.78,3.72,4.60,4.60,5.81,9.87],
'涨跌幅%':[10.09,10.09,10.09,10.08,10.06,10.06,10.06,10.05,
10.05,10.04]})
###(2)使⽤条形图展⽰股票数据,其中证券简称为x轴、最新价为y轴###
s1=df['证券简称']
s2=df['最新价']
plt.figure(figsize=(12,6),facecolor='white')
plt.bar(s1,align ='center',height=s2,width=0.8,alpha=0.8)
plt.xlabel("证券简称")
plt.ylabel("最新价")
plt.title("各证券最新价格")
###(3)将条形图以shares——bar.png为⽂件名保存在桌⾯上###
plt.savefig(r'E:\pywork\shares--bar.png')
plt.show()
⼼得:
1.函数将整个绘画区域等分,题⼀中要求划分⼀个2*1⼦绘图区域,因此通过subplot(nrows,ncols,index)可以很快得到⾃⼰需要图形区域准确的画出图形,同时还可以使⽤subplots(nrows,ncols,index)⼀次性⽣成多个坐标系。
2.错误:条形图字体看不清楚以及第⼀条中迪投资条形图不完整,图形整体呈现不好。
修改:
(1)将SimHei字体更改为FangSong字体;
(2)在绘制条形图函数中添加了align = ‘center’,代码如下:
plt.bar(s1,height=s2,width=0.8,alpha=0.8) ,最终条形图x轴刻度标签为⽔平居中。