这一部分转载于自己本人微信公众号: 眼光梭映一世豪,欢迎骚扰!这篇文字只出于想要玩一下数据分析,小白一个,欢迎大家指点批评。

文章目录

  • 01 第一部分,制作缘由。
  • 02第二部分:爬虫的过程
  • 03 第三部分:数据清洗以及数据分析

01 第一部分,制作缘由。

历时两天的数据分析项目介绍。
作者偶然发现数据分析是一个有趣的事情,现在是大数据的时代,马云曾经说过,拥有数据就是拥有未来,所以有一个会分析数据的能力是一个比较不错的事情。
作者经过一段时间的爬虫练习,现在可以爬取一些自己想要的数据,但是一些拥有反爬的网站,作者现在还在研究怎么去破解他们,就比如58同城的数字反爬虫,和百度文库的字体反爬虫等等,都是一些很好练习爬虫的资源,这一次的数据分析,是分析深圳租房的费用和买房的费用与地区之间的关系,所有的数据,都来自房天下 ,下面我们就开始讲解整个项目的过程吧。

02第二部分:爬虫的过程

爬虫的网址:https://sz.newhouse.fang.com/house/

这一次数据分析的数据来源,就是来自房天下这里的深圳租房数据和卖房数据。具体的爬虫过程我就不说了,但是我会把代码给大家参考,如果大家觉得我的代码有什么可以改进的地方也可以联系我,本次爬虫用到了线程池和进程池并发,由于一开始一秒50个并发导致网站之间显示了验证码,所以我减小了并发量,然后每并发一次sleep2秒。
以下是爬虫租房信息的代码,卖方信息的代码与这个差不多,我就不分享了。

之后将数据存到MySQL数据库中,然后导出为csv文件开始准备数据分析。
一共爬取到了14303条数据,数据量比较客观,对于第一次数据分析的我来说,还是算一个比较庞大的数据,数据库截图。

可以看到,数据有一些是有问题的,所以我们后面要进行数据的清洗,将一些出了问题的数据删除,不要引起数据分析的错误。
ok,将数据导出之后:

03 第三部分:数据清洗以及数据分析

以下的数据全都是数据清洗完和分析完的结果,代码会在本文的最后进行截图分享,由于是第一次写数据分析的代码,有点乱,希望不要介意。一共写了400多行,用时一天,开发环境:python3.8,开发工具pycharm。

每一个数据都是动态的,但是微信公众号不能导入进来,所以我就放在了我的网站上,大家可以点进去玩一下这个图。

首先,我们来看一下,我们手头上深圳每一个区域的数据量是多少:

动态数据(上图的交互动图,大家可以点进来玩玩,pyecharts可视化):
https://www.yxinmiracle.com/%E7%A7%9F%E6%88%BF%E6%95%B0%E6%8D%AE%E5%92%8C%E5%8D%96%E6%88%BF%E6%95%B0%E6%8D%AE%E7%9A%84%E6%AF%94%E8%BE%83.html
左边是卖房数据,很容易看出福田区的卖房数据是最多的,租房数据是龙岗区的最多,看来龙岗的包租婆多一些哈哈哈哈。

租房信息

然后我们再来看看:在不同的住房规格(这里的规格指的是面积我分成三个范围50平方米以下,50平方米以上100平方米以下,100平方米以上)

动态数据(上图的交互动图,大家可以点进来玩玩,pyecharts可视化):
https://www.yxinmiracle.com/%E4%B8%89%E7%B1%BB.html
三个分类,都是南山区的租金是最贵的,这个时候我也十分的怀疑,我们拿100平方米以上的数据来计算一下(进去链接,手点一下柱状图就可以看见详细数据了):

租金就是上图所示的162.25元,那么假设是125平方米,那么一个月就要162.25*125=2w+ 我的天,能住南山的也特么太有钱了,你们是不是怀疑数据的真实性,与可靠性?说实话,我当初也怀疑这到底是怎么回事,所以我回去看了看我爬下来的数据。(第二列是面积,第三列是一个月的租金)


然后我去房天下查了一下:


南山的大房是真的特么的贵啊,以后要是身边有南山的朋友。。咳咳,你们自己看着办吧。
以100平米为参考,看看哪个区最少:


很显然,是大鹏新区,平均33元,房子至少100平米,一个月就是3300至少,和南山的相比实在是太大了,看来我还是比较适合大鹏。

租房信息

对比完不同大小的房型,那么我们现在忽略房型的大小,算综合的,看看哪个区的租金是最贵的(此时你们是不是想:不用想啦,一定是南山,哈哈哈,那可不一定哦,数据揭晓答案!!)


动态数据(上图的交互动图,大家可以点进来玩玩,pyecharts可视化):
https://www.yxinmiracle.com//%E5%B9%B3%E5%9D%87%E4%BB%B7%E4%B8%BA%E5%88%86%E6%9E%90.html
果不其然。。。。还是南山的最多平均151元,那我要是住50平方的。。。。151*50=7550 。。唉 我还是住天桥底下吧。。(大家好好努力学习!!!!)

租房信息

其实呢,这种比较比较不科学,因为南山的极端情况有点多,在数据分析的角度,对于连续的异常值,我们不能取两端极端的数据,我们只能取中间值来判断:


动态数据(上图的交互动图,大家可以点进来玩玩,pyecharts可视化):
https://www.yxinmiracle.com/%E4%B8%AD%E9%97%B4%E5%80%BC.html
还是南山的最多。。。。我看看我住的龙岗

最中间的价格为3500每个月,这个嘛。。。。我也不好判断,嘻嘻。

接下里就是卖房信息

动态数据(上图的交互动图,大家可以点进来玩玩,pyecharts可视化):
https://www.yxinmiracle.com/line.html
看来,不管是卖房还是租房子,都是南山区的房价是最高的,高达10万一平方平均,最低的是坪山区3万一平方。。。。现在买房是真的难啊。。。。。。为了数据的可靠性,我们还是看看中间值吧。

卖房数据中间值

动态数据(上图的交互动图,大家可以点进来玩玩,pyecharts可视化):
https://www.yxinmiracle.com/line2.html
福田区成功超过了南山区!!!!!!!!!!!!!!!!!!!!
高达9万35一平方。。太贵了太贵了
好啦,本次的数据分析到此结束啦,后期会出一些同期对比和缓期对比,这样会大大增加数据的可看度和可信度,希望大家多多支持我!!!也支持一下我的网站 https://www.yxinmiracle.com/ 打算后面会用flask开发,现在还没有开始,不过还好有他才能将这些有趣的图放上去,数据可视化实在是太重要了。如果想要数据和代码文件的话私聊我哦!!!
分析完之后感觉自己以后没地方住了哈哈哈。

这一部分转载于自己本人微信公众号: 眼光梭映一世豪,欢迎骚扰!
小白第一次数据分析,由于处于兴趣,还没有学多少就来了弄了,代码很多重复,只供借鉴一下。

"""
@author: Yxinmiracle
@project: 代码目录
@file: test.py
@time: 2020/3/1 11:32
@desc:/*code is far away from bug with the animal protecting*  ┏┓   ┏┓*┏┛┻━━━┛┻┓*┃       ┃  *┃   ━   ┃*┃ ┳┛ ┗┳ ┃*┃       ┃*┃   ┻   ┃*┃       ┃*┗━┓   ┏━┛*  ┃   ┃神兽保佑*  ┃   ┃代码无BUG!*  ┃   ┗━━━┓*  ┃       ┣┓*  ┃       ┏┛*  ┗┓┓┏━┳┓┏┛*   ┃┫┫ ┃┫┫*   ┗┻┛ ┗┻┛ *   */"""
#df.loc[df['column_name'] == some_value]
import numpy as np
import pandas as pd
from pyecharts.charts import Page, Polar
from pyecharts.faker import Faker
from pyecharts.charts import Pie
from pyecharts import options as opts
from pyecharts.charts import Bar
from pyecharts.globals import ThemeType
#from pyecharts import Piedata = pd.read_csv("sz.csv")zhufang_data_number = []name_list = ['宝安区','大鹏新区','福田区','光明区','龙岗区','龙华区','罗湖区','南山区','坪山区','盐田区']rent_name = 'area(m^2)'
yuan_name = 'rent(month)'# 设置切分区域
listBins = [50,100,300]# 设置切分后对应标签
listLabels = ['0-50','50-100','100以上']#这里获取的是保安区的数据
baoan_data = data.loc[data['city']=='宝安']
baoan_number = len(baoan_data)
zhufang_data_number.append(baoan_number)#这里获取的是大鹏新区的数据
dapeng_data = data.loc[data['city']=='大鹏新区']
dapeng_number = len(dapeng_data)
zhufang_data_number.append(dapeng_number)#这里获取的是福田区的数据
futian_data = data.loc[data['city']=='福田']
futian_number = len(futian_data)
zhufang_data_number.append(futian_number)#这里获取的是光明区的数据
guangming_data = data.loc[data['city']=='光明区']
guangming_number = len(guangming_data)
zhufang_data_number.append(guangming_number)#这里获取的是龙岗区的数据
longguang_data = data.loc[data['city']=='龙岗']
longguang_number = len(longguang_data)
zhufang_data_number.append(longguang_number)#这里获取的是龙华区的数据
longhua_data = data.loc[data['city']=='龙华区']
longhua_number = len(longguang_data)
zhufang_data_number.append(longhua_number)#这里是获取的是罗湖区的数据
luohu_data = data.loc[data['city']=='罗湖']
louhu_number = len(luohu_data)
zhufang_data_number.append(louhu_number)#这里获取的是南山区的数据
nanshang_data = data.loc[data['city']=='南山']
nanshang_number = len(nanshang_data)
zhufang_data_number.append(nanshang_number)#这里是坪山区的数据
pingshan_data = data.loc[data['city']=='坪山区']
pingshan_number = len(pingshan_data)
zhufang_data_number.append(pingshan_number)#这是是盐田区的数据
yantian_data = data.loc[data['city']=='盐田']
yantian_number = len(yantian_data)
zhufang_data_number.append(yantian_number)#现在开始进行数据的分析,第一步,我们已经得到了各个区的租房数据,横坐标为地区的名字,纵坐标为各个数据
#print(name_list)
#print(zhufang_data_number)#第二步,算出每一个地区的每平方米的平均住房价格,以及中位数
# 先算出,每一个地区的平方数总和
#baoan_area_sum_50 = baoan_data[baoan_data[rent_name]<=50][rent_name].sum()
#baoan_area_sum_100 = baoan_data[(baoan_data[rent_name]>50) & (baoan_data[rent_name]<=100)][rent_name].sum()
#baoan_area_sum_hight_100 = baoan_data[baoan_data[rent_name]>100][rent_name].sum()baoan_area_sum_list = [baoan_data[baoan_data[rent_name]<=50][rent_name].sum(),baoan_data[(baoan_data[rent_name]>50) & (baoan_data[rent_name]<=100)][rent_name].sum(),baoan_data[baoan_data[rent_name]>100][rent_name].sum()]
baoan_rent_sum_list = [baoan_data[baoan_data[rent_name]<=50][yuan_name].sum(),baoan_data[(baoan_data[rent_name]>50) & (baoan_data[rent_name]<=100)][yuan_name].sum(),baoan_data[baoan_data[rent_name]>100][yuan_name].sum()]
baoan_last_data = [baoan_data[baoan_data[rent_name]<=50][yuan_name].sum()/baoan_data[baoan_data[rent_name]<=50][rent_name].sum(),baoan_data[(baoan_data[rent_name]>50) & (baoan_data[rent_name]<=100)][yuan_name].sum()/baoan_data[(baoan_data[rent_name]>50) & (baoan_data[rent_name]<=100)][rent_name].sum(),baoan_data[baoan_data[rent_name]>100][yuan_name].sum()/baoan_data[baoan_data[rent_name]>100][rent_name].sum()]#这里是大鹏新区中的不同面积对应的房租信息,其中0代表无信息。
dapeng_last_data = [0,dapeng_data[(dapeng_data[rent_name]>50) & (dapeng_data[rent_name]<=100)][yuan_name].sum()/dapeng_data[(dapeng_data[rent_name]>50) & (dapeng_data[rent_name]<=100)][rent_name].sum(),dapeng_data[dapeng_data[rent_name]>100][yuan_name].sum()/dapeng_data[dapeng_data[rent_name]>100][rent_name].sum()]futian_last_data = [futian_data[futian_data[rent_name]<=50][yuan_name].sum()/futian_data[futian_data[rent_name]<=50][rent_name].sum(),futian_data[(futian_data[rent_name]>50) & (futian_data[rent_name]<=100)][yuan_name].sum()/futian_data[(futian_data[rent_name]>50) & (futian_data[rent_name]<=100)][rent_name].sum(),futian_data[futian_data[rent_name]>100][yuan_name].sum()/futian_data[futian_data[rent_name]>100][rent_name].sum()]guangming_last_data = [guangming_data[guangming_data[rent_name]<=50][yuan_name].sum()/guangming_data[guangming_data[rent_name]<=50][rent_name].sum(),guangming_data[(guangming_data[rent_name]>50) & (guangming_data[rent_name]<=100)][yuan_name].sum()/guangming_data[(guangming_data[rent_name]>50) & (guangming_data[rent_name]<=100)][rent_name].sum(),guangming_data[guangming_data[rent_name]>100][yuan_name].sum()/guangming_data[guangming_data[rent_name]>100][rent_name].sum()]longguang_last_data = [longguang_data[longguang_data[rent_name]<=50][yuan_name].sum()/longguang_data[longguang_data[rent_name]<=50][rent_name].sum(),longguang_data[(longguang_data[rent_name]>50) & (longguang_data[rent_name]<=100)][yuan_name].sum()/longguang_data[(longguang_data[rent_name]>50) & (longguang_data[rent_name]<=100)][rent_name].sum(),longguang_data[longguang_data[rent_name]>100][yuan_name].sum()/longguang_data[longguang_data[rent_name]>100][rent_name].sum()]longhua_last_data = [longhua_data[longhua_data[rent_name]<=50][yuan_name].sum()/longhua_data[longhua_data[rent_name]<=50][rent_name].sum(),longhua_data[(longhua_data[rent_name]>50) & (longhua_data[rent_name]<=100)][yuan_name].sum()/longhua_data[(longhua_data[rent_name]>50) & (longhua_data[rent_name]<=100)][rent_name].sum(),longhua_data[longhua_data[rent_name]>100][yuan_name].sum()/longhua_data[longhua_data[rent_name]>100][rent_name].sum()]louhu_last_data = [luohu_data[luohu_data[rent_name]<=50][yuan_name].sum()/luohu_data[luohu_data[rent_name]<=50][rent_name].sum(),luohu_data[(luohu_data[rent_name]>50) & (luohu_data[rent_name]<=100)][yuan_name].sum()/luohu_data[(luohu_data[rent_name]>50) & (luohu_data[rent_name]<=100)][rent_name].sum(),luohu_data[luohu_data[rent_name]>100][yuan_name].sum()/luohu_data[luohu_data[rent_name]>100][rent_name].sum()]nanshang_last_data = [nanshang_data[nanshang_data[rent_name]<=50][yuan_name].sum()/nanshang_data[nanshang_data[rent_name]<=50][rent_name].sum(),nanshang_data[(nanshang_data[rent_name]>50) & (nanshang_data[rent_name]<=100)][yuan_name].sum()/nanshang_data[(nanshang_data[rent_name]>50) & (nanshang_data[rent_name]<=100)][rent_name].sum(),nanshang_data[nanshang_data[rent_name]>100][yuan_name].sum()/nanshang_data[nanshang_data[rent_name]>100][rent_name].sum()]pingshan_last_data = [pingshan_data[pingshan_data[rent_name]<=50][yuan_name].sum()/pingshan_data[pingshan_data[rent_name]<=50][rent_name].sum(),pingshan_data[(pingshan_data[rent_name]>50) & (pingshan_data[rent_name]<=100)][yuan_name].sum()/pingshan_data[(pingshan_data[rent_name]>50) & (pingshan_data[rent_name]<=100)][rent_name].sum(),pingshan_data[pingshan_data[rent_name]>100][yuan_name].sum()/pingshan_data[pingshan_data[rent_name]>100][rent_name].sum()]yantian_last_data = [yantian_data[yantian_data[rent_name]<=50][yuan_name].sum()/yantian_data[yantian_data[rent_name]<=50][rent_name].sum(),yantian_data[(yantian_data[rent_name]>50) & (yantian_data[rent_name]<=100)][yuan_name].sum()/yantian_data[(yantian_data[rent_name]>50) & (yantian_data[rent_name]<=100)][rent_name].sum(),yantian_data[yantian_data[rent_name]>100][yuan_name].sum()/yantian_data[yantian_data[rent_name]>100][rent_name].sum()]all_rent_aver_data = [baoan_data[yuan_name].sum()/baoan_data[rent_name].sum(),dapeng_data[yuan_name].sum()/dapeng_data[rent_name].sum(),futian_data[yuan_name].sum()/futian_data[rent_name].sum(),guangming_data[yuan_name].sum()/guangming_data[rent_name].sum(),longguang_data[yuan_name].sum()/longguang_data[rent_name].sum(),longhua_data[yuan_name].sum()/longhua_data[rent_name].sum(),luohu_data[yuan_name].sum()/luohu_data[rent_name].sum(),nanshang_data[yuan_name].sum()/nanshang_data[rent_name].sum(),pingshan_data[yuan_name].sum()/pingshan_data[rent_name].sum(),yantian_data[yuan_name].sum()/yantian_data[rent_name].sum(),]all_median_data = [baoan_data[yuan_name].median(),dapeng_data[yuan_name].median(),futian_data[yuan_name].median(),guangming_data[yuan_name].median(),longguang_data[yuan_name].median(),longhua_data[yuan_name].median(),luohu_data[yuan_name].median(),nanshang_data[yuan_name].median(),pingshan_data[yuan_name].median(),yantian_data[yuan_name].median()]
#baoan_rent_sum = baoan_data[yuan_name].sum()# print(all_rent_aver_data)
# print(all_median_data)fangjia_value = []#以下是房价的信息(不是租房)
fangjia_baoan = pd.read_csv("baoan.csv",names=['price'])
fangjia_baoan_len = len(fangjia_baoan)
fangjia_value.append(fangjia_baoan_len)fangjia_dapeng = pd.read_csv("dapeng.csv",names=['price'])
fangjia_dapeng_len = len(fangjia_dapeng)
fangjia_value.append(fangjia_dapeng_len)fangjia_futian = pd.read_csv("futian.csv",names=['price'])
fangjia_futian_len = len(fangjia_futian)
fangjia_value.append(fangjia_futian_len)fangjia_guangming = pd.read_csv("guangming.csv",names=['price'])
fangjia_guangming_len = len(fangjia_guangming)
fangjia_value.append(fangjia_guangming_len)fangjia_longgan = pd.read_csv("longgan.csv",names=['price'])
fangjia_longgan_len = len(fangjia_longgan)
fangjia_value.append(fangjia_longgan_len)fangjia_longhua = pd.read_csv("longhua.csv",names=['price'])
fangjia_longhua_len = len(fangjia_longhua)
fangjia_value.append(fangjia_longhua_len)fangjia_luohu = pd.read_csv("luohu.csv",names=['price'])
fangjia_luohu_len = len(fangjia_luohu)
fangjia_value.append(fangjia_luohu_len)fangjia_nanshan = pd.read_csv("nanshan.csv",names=['price'])
fangjia_nanshan_len = len(fangjia_nanshan)
fangjia_value.append(fangjia_nanshan_len)fangjia_pingshan = pd.read_csv("pingshan.csv",names=['price'])
fangjia_pingshan_len = len(fangjia_pingshan)
fangjia_value.append(fangjia_pingshan_len)fangjia_yantian = pd.read_csv("yantian.csv",names=['price'])
fangjia_yantian_len = len(fangjia_yantian)
fangjia_value.append(fangjia_yantian_len)#最后两个个数据 每个区的平均房价
every_qv_fangjia = [fangjia_baoan['price'].sum()/fangjia_baoan_len,fangjia_dapeng['price'].sum()/fangjia_dapeng_len,fangjia_futian['price'].sum()/fangjia_futian_len,fangjia_guangming['price'].sum()/fangjia_guangming_len,fangjia_longgan['price'].sum()/fangjia_longgan_len,fangjia_longhua['price'].sum()/fangjia_longhua_len,fangjia_luohu['price'].sum()/fangjia_luohu_len,fangjia_nanshan['price'].sum()/fangjia_nanshan_len,fangjia_pingshan['price'].sum()/fangjia_pingshan_len,fangjia_yantian['price'].sum()/fangjia_yantian_len]#房价中间价位median
every_median_fangjia = [fangjia_baoan['price'].median(),fangjia_dapeng['price'].median(),fangjia_futian['price'].median(),fangjia_guangming['price'].median(),fangjia_longgan['price'].median(),fangjia_longhua['price'].median(),fangjia_luohu['price'].median(),fangjia_nanshan['price'].median(),fangjia_pingshan['price'].median(),fangjia_yantian['price'].median(),]print(every_median_fangjia)pie=(Pie().add("",[list(z) for z in zip(name_list, zhufang_data_number)],radius=["30%", "50%"],center=["25%", "55%"],label_opts=opts.LabelOpts(is_show=True)).add("",[list(z) for z in zip(name_list, fangjia_value)],radius=["30%", "50%"],center=["75%", "55%"],label_opts=opts.LabelOpts(is_show=True)).set_global_opts(title_opts=opts.TitleOpts(title="数据量显示,单位为:个(也就是这个地区有多少个数据)", subtitle="左边为卖房数据,右边为向外租房数据"),legend_opts=opts.LegendOpts(pos_top="15%", pos_left="2%"),# .set_global_opts(title_opts=opts.TitleOpts(title="数据量显示", subtitle="左边为买房数据,右边为租房数据")))
)pie.render(path="租房数据和卖房数据的比较.html")c = (Bar(init_opts=opts.InitOpts(theme=ThemeType.PURPLE_PASSION,width="1600px",height="760px")).add_xaxis(['面积为50平方米以下', '面积大于50,小于100平方米', '面积大于100平方米']).add_yaxis("宝安区", baoan_last_data).add_yaxis("大鹏新区", dapeng_last_data).add_yaxis("福田区", futian_last_data).add_yaxis("光明区", guangming_last_data).add_yaxis("龙岗区", longguang_last_data).add_yaxis("龙华区", longhua_last_data).add_yaxis("罗湖区", louhu_last_data).add_yaxis("南山区", nanshang_last_data).add_yaxis("坪山区", pingshan_last_data).add_yaxis("盐田区", yantian_last_data).set_global_opts(title_opts=opts.TitleOpts(title="在不同房型大小下,每平方米需要多少租金",subtitle="数值单位为:元/平方米"),legend_opts=opts.LegendOpts(orient="vertical", pos_top="15%", pos_left="1%"),xaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(rotate=10))).set_series_opts(label_opts=opts.LabelOpts(is_show=False),# markpoint_opts=opts.MarkPointOpts(#     data=[#     opts.MarkPointItem(type_="max",name="最大值")# ]#))
)
c.render(path="三类.html")c2 = (Bar(init_opts=opts.InitOpts(theme=ThemeType.CHALK,width="1600px",height="760px")).add_xaxis(name_list).add_yaxis("每平方米的平均价位",all_rent_aver_data).reversal_axis().set_series_opts(label_opts=opts.LabelOpts(position="right",is_show=False),#label_opts=opts.LabelOpts(is_show=False),markpoint_opts=opts.MarkPointOpts(data=[opts.MarkPointItem(type_="max",name="最大值"),opts.MarkPointItem(type_="min",name="最小值")])).set_global_opts(title_opts=opts.TitleOpts(title="整个区的平均价为",subtitle="数值单位为:元/平方米"))
)
c2.render(path="平均价为分析.html")c3 = (Polar(init_opts=opts.InitOpts(theme=ThemeType.CHALK,width="1600px",height="760px")).add_schema(angleaxis_opts=opts.AngleAxisOpts(data=name_list, type_="category")).add("每个区的中间价为(中间值)",all_median_data , type_="bar", stack="stack0").set_series_opts(label_opts=opts.LabelOpts(position="right", is_show=False)).set_global_opts(title_opts=opts.TitleOpts(title="每个区租金的中间值(注意,是中间值,不是平均值)",subtitle="单位:元每月")))
c3.render("中间值.html")from pyecharts.faker import Faker
from pyecharts import options as opts
from pyecharts.charts import Bar, Grid, Line,Scatterprint(every_qv_fangjia)line = (Line(init_opts=opts.InitOpts(theme=ThemeType.DARK,width="1600px",height="760px")).add_xaxis(name_list).add_yaxis("房价",every_qv_fangjia).set_global_opts(title_opts=opts.TitleOpts(title="每个区的平均房价",subtitle="单位:元每平方")).set_series_opts(label_opts=opts.LabelOpts(position="right", is_show=True),markpoint_opts=opts.MarkPointOpts(data=[opts.MarkPointItem(type_="max",name="最大值"),opts.MarkPointItem(type_="min",name="最小值")])))#grid = (
#    Grid()
#    .add(bar, grid_opts=opts.GridOpts(pos_bottom="60%"))
#    .add(line, grid_opts=opts.GridOpts(pos_top="60%"))
#)
line.render("line.html")from pyecharts.charts import Page, PictorialBar
from pyecharts.globals import SymbolTypeline2 = (PictorialBar(init_opts=opts.InitOpts(theme=ThemeType.DARK,width="1600px",height="760px")).add_xaxis(name_list).add_yaxis("",every_median_fangjia,label_opts=opts.LabelOpts(is_show=True),symbol_size=22,symbol_repeat="fixed",symbol_offset=[0, -5],is_symbol_clip=True,symbol=SymbolType.ROUND_RECT,).reversal_axis().set_global_opts(title_opts=opts.TitleOpts(title="每个区房价的中间价位",subtitle="单位:元每平方米"),xaxis_opts=opts.AxisOpts(is_show=True),yaxis_opts=opts.AxisOpts(axistick_opts=opts.AxisTickOpts(is_show=False),axisline_opts=opts.AxisLineOpts(linestyle_opts=opts.LineStyleOpts(opacity=0)),),)
.set_series_opts(label_opts=opts.LabelOpts(position="right", is_show=True),markpoint_opts=opts.MarkPointOpts(data=[opts.MarkPointItem(type_="max",name="最大值"),opts.MarkPointItem(type_="min",name="最小值")]))
)
line2.render("line2.html")

线程池+进程池爬虫—深圳房价+数据分析+pyecharts可视化相关推荐

  1. Python爬虫:通信和线程池进程池

    通信和线程池进程池 线程间通信 导入线程队列 from queue import Queue import time from random import randint 同一个进程中的多个线程可以直 ...

  2. 爬虫day8通信和线程池进程池总结

    day8通信和线程池进程池总结 一.线程间通信 1.线程间通信 同一个进程中的多个线程可以直接通信(一个线程可以直接使用另外一个线程中产生的数据) 通信原则:使用全局变量 from threading ...

  3. 进程、线程、进程池、进程三态、同步、异步、并发、并行、串行

    点击上方蓝色"方志朋",选择"设为星标"回复"666"获取独家整理的学习资料! 来源:cnblogs.com/songhaixing/p/1 ...

  4. python线程池模块_Python并发编程之线程池/进程池--concurrent.futures模块

    一.关于concurrent.futures模块 Python标准库为我们提供了threading和multiprocessing模块编写相应的多线程/多进程代码,但是当项目达到一定的规模,频繁创建/ ...

  5. 定时器 线程池\进程池

    定时器 可以指定线程多久后启动,(并且他是一个异步的线程,也就是并发) from threading import Timer """ 这个相当于开启了一个可以定义时间的 ...

  6. 《转载》Python并发编程之线程池/进程池--concurrent.futures模块

    本文转载自 Python并发编程之线程池/进程池--concurrent.futures模块 一.关于concurrent.futures模块 Python标准库为我们提供了threading和mul ...

  7. Python并发编程之线程池/进程池

    引言 Python标准库为我们提供了threading和multiprocessing模块编写相应的多线程/多进程代码,但是当项目达到一定的规模,频繁创建/销毁进程或者线程是非常消耗资源的,这个时候我 ...

  8. 并发编程 - 线程 - 1.线程queue/2.线程池进程池/3.异步调用与回调机制

    1.线程queue :会有锁 q=queue.Queue(3) q.get() q.put() 先进先出 队列后进先出 堆栈优先级队列 1 """先进先出 队列" ...

  9. python多线程队列和池_Python3 从零单排28_线程队列进程池线程池

    1.线程队列 线程队列有三种:先进先出,后进先出,按优先级进出,具体如下: 1 importqueue2 3 #先进先出 4 q = queue.Queue(3)5 6 q.put(1)7 q.put ...

最新文章

  1. 两个排序数组的中位数(4.Median of Two Sorted Arrays)
  2. Windows服务的安装,启动,停止和卸载
  3. Oracle表空间规划处理
  4. python语言支持苹果系统吗_Mac系统上的一款Python编程平台
  5. Python线程、进程、进程池、协程
  6. Spring学习笔记之Design of DispatcherServlet
  7. mysql百万级去重_mysql优化小技巧之去除重复项(百万级数据)
  8. Leedcode8-reorder-list
  9. vue php 分页组件,基于Vue.js的表格分页组件
  10. MONyog-数据库性能监控工具
  11. 学计算机买什么书好,学电脑基础知识买什么书好?
  12. Unity安卓端重启游戏
  13. springboot 整合mybatis 报错Invalid bound statement (not found)
  14. 软件测试基础:白盒测试方法:用基本路径覆盖法设计测试用例,基本路径覆盖测试技术设计测试用例的步骤
  15. apt安装包时报错:Certificate verification failed: The certificate is NOT trusted.
  16. RNN Transducer(RNN-T)——李宏毅人类语言处理学习笔记
  17. mysql保存为vna文件_微机 模拟试题三(含答案)
  18. 【Marva Collins' Way】第一章
  19. python去掉文件名中的_normal,_abnor后缀
  20. Apollo EM Planner阅读笔记

热门文章

  1. 系统集成项目管理工程师 42 个过程图形记忆法(第2期)
  2. 什么是 jsbridge
  3. 【前端进阶】-TypeScript高级类型 | 交叉类型、索引签名类型、映射类型
  4. MySQL—Replication
  5. printf函数的类型转换问题
  6. 计算机运算定律,乘法运算定律
  7. 2021年危险化学品经营单位安全管理人员考试题库及危险化学品经营单位安全管理人员模拟考试题库
  8. 手游平台搭建流程是怎样的?
  9. PS2022版本修复打开闪退问题
  10. 利用机器学习进行人脸颜值评分