数据分析(二十四) | 您所在的位置:网站首页 › 数据分析24去78867 › 数据分析(二十四) |
23. 绘图
23.1 问题解决
23.1.1 jupyter notebook
在jupyter notebook中如果有问题需要添加 %matplotlib inline 23.1.2 中文问题plt不支持中文,所以要修改字体 #修改字体的大小 plt.rcParams['font.size'] = 24 x\y轴的标签,可以设置字体的大小 plt.xlabel('数据',fontsize=18) plt.ylabel('值',fontsize=18) # 去除-号,当字体是中文的时候,负号显示不出来 plt.rcParams['axes.unicode_minus'] = False 23.1.3 显示 #增加图例 plt.legend() #显示网格 plt.grid() 23.2 创建画布 >>> import matplotlib.pyplot as plt # 创建一张画布 >>> fig = plt.figure() >>> print(fig) Figure(432x288)函数详情: plt.figure(num=None, figsize=None, dpi=None, facecolor=None, edgecolor=None, frameon=True, FigureClass=, clear=False, **kwargs) dpi:分辨率figsize:指定画布的大小 23.3 线型图 >>> arr1= np.random.randint(0,10,10) >>> arr1 array([4, 8, 0, 0, 5, 5, 5, 0, 2, 7]) >>> plt.plot(arr1) # 保存在同一目录下的a.jpg ,自动创建 >>> plt.savefig('a.jpg')注意点: plt.show()显示最后一次互补绘制的图形,显示完成之后,会清空内存中的数据 23.4 绘制子图 23.4.1 第一种 >>> ax1 = fig.add_subplot(2,2,1) >>> ax2 = fig.add_subplot(2,2,2) >>> ax3 = fig.add_subplot(2,2,3) >>> ax4 = fig.add_subplot(2,2,4) >>> arr1 = np.random.randint(10,20,20) >>> arr2 = np.random.randint(10,20,20) >>> arr3 = np.random.randint(10,20,20) >>> arr4 = np.random.randint(10,20,20) >>> ax1.plot(arr1,color='r') >>> ax2.plot(arr2,color='g') >>> ax3.plot(arr3,color='purple') >>> ax4.plot(arr4,color='y') >>> plt.show()是观察连续型数据分布的最好工具 >>> new_snd_mean.price dist 东城 71883.595041 丰台 42500.904309 朝阳 52800.624651 海淀 68757.602261 石景山 40286.889574 西城 85674.778545 Name: price, dtype: float64 >>> plt.hist(new_snd_mean.price) (array([2., 0., 1., 0., 0., 0., 2., 0., 0., 1.]), array([40286.8895737 , 44825.67847088, 49364.46736805, 53903.25626523, 58442.0451624 , 62980.83405958, 67519.62295675, 72058.41185393, 76597.2007511 , 81135.98964828, 85674.77854545]), )函数详情: def hist(x, bins=None, range=None, density=None, weights=None, cumulative=False, bottom=None, histtype='bar', align='mid', orientation='vertical', rwidth=None, log=False, color=None, label=None, stacked=False, normed=None, hold=None, data=None, **kwargs): 注意点: 1、bins是直方图特有的参数,表示的是直方的个数 2、alpha是指透明度注意点: bins:是直方图特有的参数,表示直方的个数alpha:透明度 >>> snd_new.price.hist(bins=80)[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qZSOx3Hx-1574388043329)(image/堆叠图.png)] 23.6 散点图 ![散点图](C:/Users/沁/Desktop/散点图.png>>> x = np.random.randint(10,200,50) >>> y = x + 50 * np.random.rand(50) >>> plt.scatter(x,y,color='g')注意点: 第一个参数:X轴的刻度第二个参数:Y轴的刻度第三个参数:柱形图的宽度 23.8 混淆矩阵用来表示二维数据的分布情况 监督学习:混淆矩阵 非监督学习:匹配矩阵 >>> arr1 = np.random.randint(10,50,(10,10)) >>> plt.imshow(arr1,cmap=plt.cm.Blues) >>> plt.colorbar()注意点:cmap:指定颜色风格 23.9 饼图 >>> arr10 = np.random.randint(10,20,6) >>> print(arr10) >>> plt.pie(arr10,shadow=True,autopct='%2.2f%%',explode=[1,0,0,0,0,0], labels=['一月','2','3','4','5','6']) [19 19 11 10 16 16] ([, , , , , ], [Text(1.6642,1.28079,'一月'), Text(-0.425333,1.01444,'2'), Text(-1.08953,0.151419,'3'), Text(-0.915933,-0.609152,'4'), Text(-0.0948204,-1.09591,'5'), Text(0.936413,-0.577175,'6')], [Text(1.26796,0.975843,'20.88%'), Text(-0.232,0.553332,'20.88%'), Text(-0.594288,0.0825921,'12.09%'), Text(-0.4996,-0.332265,'10.99%'), Text(-0.0517202,-0.597767,'17.58%'), Text(0.510771,-0.314823,'17.58%')])注意点:labels的长度要和数据一致 23.10 pyecharts官方文档:https://pyecharts.org/#/zh-cn/intro >>> import Stack2 >>> import pyecharts >>> from pyecharts import options as opts >>> from pyecharts.globals import ThemeType >>> new_snd_mean roomnum halls AREA subway school price dist 东城 2.045275 1.101689 90.135544 0.948976 0.458139 71883.595041 丰台 2.170343 1.275874 93.370472 0.756023 0.031897 42500.904309 朝阳 2.284218 1.425978 106.259661 0.886522 0.208450 52800.624651 海淀 2.290853 1.248030 95.013176 0.798561 0.474820 68757.602261 石景山 2.041089 1.171546 80.236168 0.631228 0.009245 40286.889574 西城 2.117455 1.078182 81.204145 0.891273 0.561091 85674.778545 >>> bar = ( ... pyecharts.charts.Bar(init_opts=opts.InitOpts(theme=ThemeType.WESTEROS)) ... .add_xaxis(list(new_snd_mean.price.index.values)) ... .add_yaxis('hhh',list(new_snd_mean.price.values)) ... ) >>> bar.render_notebook() |
CopyRight 2018-2019 实验室设备网 版权所有 |