数据分析(二十四) 您所在的位置:网站首页 数据分析24去78867 数据分析(二十四)

数据分析(二十四)

2023-12-29 02:59| 来源: 网络整理| 查看: 265

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.plot(arr1,color='green',marker='*',markerfacecolor='red', markersize=10,linestyle='None') []

线形图2

plt.show()

注意点:

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()

在这里插入图片描述

# 保存 >>>plt.savefig('b.png') 23.4.2 第二种 # 第一种写法 >>> fig.add_subplot(2,3,1) >>> plt.plot(arr1) # 第二种写法 >>> fig.add_subplot(232) >>> plt.plot(arr2) >>> fig.add_subplot(235) >>> plt.plot(arr2) >>> plt.show() 23.5 直方图

是观察连续型数据分布的最好工具

>>> 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]), )

在这里插入图片描述

>>> plt.rcParams['font.sans-serif'] = ['SimHei'] >>> plt.title('各地区房价均价图') >>> plt.bar(new_snd_mean.price.index.values,height=new_snd_mean.price.values)

在这里插入图片描述

函数详情:

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)

在这里插入图片描述

23.5.2 堆叠图 >>> snd index dist roomnum halls AREA floor subway school price 0 0 chaoyang 1 0 46.06 middle 1 0 48850 1 1 chaoyang 1 1 59.09 middle 1 0 46540 2 2 haidian 5 2 278.95 high 1 1 71662 ... ... ... ... ... ... ... ... ... ... 16207 16207 chaoyang 2 1 61.79 high 1 0 50170 16208 16208 chaoyang 1 1 42.89 high 1 0 52693 16209 16209 fengtai 2 1 89.90 middle 1 0 46719 16210 rows × 9 columns >>> pd.crosstab(snd.dist,snd.school).plot(kind='bar')

在这里插入图片描述

# 堆叠图,可以看到占比情况 >>> pd.crosstab(snd_new.dist,snd.school).plot(kind='bar',stacked=True)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(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')

在这里插入图片描述

23.7 柱状图 >>> x = np.arange(5) >>> y1 = np.random.randint(10,100,5) >>> y2 = np.random.randint(10,100,5) >>> plt.bar(x,y1,0.25,color='red') >>> plt.bar(x+0.25,y2,0.25,color='green')

在这里插入图片描述

注意点:

第一个参数: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 实验室设备网 版权所有