python读取excel的数据,就是这么简单,python excel读取数据
Python的matplotlib包含了很多图表函数,其中plot()函数就是绘制坐标图。
通常横轴和纵轴都是数值数据,很容易画出来。如果直接带入数据,坐标轴会自动调整其大小和显示密度。但是当横轴是日期,从excel文件中读取数据时,就有点麻烦了。
遇到的问题:
1.首先,excel中的日期显示不正常。
2.横轴日期显示不理想,或者过密或者过松。
解决:
1. 方法一:修改excel数据类型
excel中的日期数据,用python读出,如下所示:
坐标轴的显示肯定有问题。
方法是修改excel数据类型。要将日期类型数据修改为文本类型,请确保在数据前面加上单引号,以便读出的数据将是str类型:
完整代码:
import matplotlib as mpl import matplotlib . py plot as pltimport datetime import matplotlib . dates as mdates from xlrd import Open _ work book from pylab import * mpl . rcparams[ font . sans-serif ]=[ sim hei ]#解决中文不显示问题#定义水平和垂直轴数据列表x_data=[]y_data=[]#打开excel文件wb=open_workbook(data.xlsx)#读取excel数据,放入列表中供wb中的s row) values=[] #在每行循环之前将值初始化为空,所以values只是一行值,它不包含范围内col的所有行和列(s . ncols):# Read index values . append(s . cell(row,col)的每一列。 value) #将该行中的每一列date添加到值列表X _ data . append(values[2])Y _ data . append(values[3]这种方法绘制的图形横坐标不是等间距的,日期一般是四舍五入显示的。例如,在10.31,11.01天xs=[datetime . datetime . strptime(d, % y-%m-%d )。date()for d in x _ data]PLT . plot _ date(xs,y _ Line=-,marker=,)#设置标注信息plt.title(u daily data) #图片顶部名称plt.xlabel (date) #横坐标名称plt.ylabel (data) #纵坐标名称plt.gcf()。autofmt _ xdate
可以看出,这种方法绘制的地图横坐标不是等间距的,日期一般是四舍五入显示的。例如,10.31将显示11.01。
2. 方法二:修改python代码
读取python excel的日期数据时,默认显示异常,在代码中进行转换。
使用此语句转换成日期形式:
PLT . GCA()xaxis . set _ major _ formatter(mdates。日期格式化程序( %Y-%m-%d ))
完整代码:
import matplotlib as mpl import matplotlib . py plot as pltimport datetime import matplotlib . dates as mdates from xlrd import Open _ work book from pylab import * mpl . rcparams[ font . sans-serif ]=[ sim hei ]#解决中文不显示问题#定义水平和垂直轴数据列表x_data=[]y_data=[]#打开excel文件wb=open_workbook(data.xlsx)#读取excel数据,放入列表中为wb中的s row) values=[] #在每行循环之前将值初始化为空,所以值只是一行值,不包含范围内col的所有行和列(s . ncols):# Read index values . append(s . cell(row,Col)。 value) #将该行中的每一列数据添加到值列表X _ data . append(values[2])Y _ data . append(values[3])# Excel表中的数据是日期类型,将日期格式化为PLT。GCA()。XAXIS。SET _ Major _ Formatter (mdates。日期格式化程序( %y-%m-%d)) PLT。GCA()。XAXIS。SET _ Major _ Locator (matplotlib。股票。MultipleLocator设置横坐标的间隔,每隔几个数据显示plt.show (x _ data,y _ data)#设置标注信息plt.title(u daily data) #图片顶部名称plt.xlabel (date) #横坐标名称plt.ylabel (data) #纵坐标名称plt.gcf(
PLT . GCA(). xaxis . set _ major _ locator(matplotlib . ticker . multiple locator(10))
图片:
只有一个问题:日期显示不正常,本来应该是2020年的,现在都是0121年,不知道为什么,没有查出问题所在,希望知道的朋友告诉一下。。
excel数据:
数据大致是这样的:第0列是日期类型,第2列是文本字符串类型。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。