python学习day15地图、柱状图

地图

在这里插入图片描述


from pyecharts.charts import Map
map=Map()
data=[
    ('北京市',999),
    ('上海市',133),
    ('河南省',123),
    ('西藏自治区',123),
    ('吉林省',12),
]

map.add("地图",data,"china")
map.render()

在这里插入图片描述

示例


from pyecharts.charts import Map
from pyecharts.options import VisualMapOpts

map=Map()
data=[
    ('北京市',999),
    ('上海市',133),
    ('河南省',123),
    ('西藏自治区',123),
    ('吉林省',12),
]

map.add("地图",data,"china")


map. set_global_opts(
visualmap_opts=VisualMapOpts(
    is_show=True,
    is_piecewise=True,
    pieces=[
        {"min" : 1,"max": 9, "label": "1-9人","color": "#CCFFFF"},
        { "min": 10,"max" : 99,"label" : "10-99人","color":"#FFFF99"},
        { "min": 100,"max": 499,"label": "99-499人","color" :"#FF9966"},
        {"min": 500,"max": 999,"label": "499-999人","color":"#FF6666"},
        { "min": 1000,"max": 9999,"label": "1000-9999人","color":"#CC3333"},
        { "min" : 10000,"label" : "10000以上","color" :"#990033"}
])
)



map.render()


在这里插入图片描述

RGB颜色对照表获取
在这里插入图片描述
全国疫情地图

import json
from pyecharts.charts import Map
from pyecharts.options import VisualMapOpts

map=Map()

data1=open("E:/桌面文件/疫情.txt",'r',encoding="UTF-8")
data2=data1.read()
JSON_data=json.loads(data2)

province=JSON_data["areaTree"][0]["children"]
data=[]

for i_data in province:
    province_name=i_data["name"]
    if province_name[-1] != "省":
        province_name = province_name + "省"
    print(province_name)
    province_num=i_data["total"]["confirm"]
    yuan_data=(province_name,province_num)
    data.append(yuan_data)
print(data)
map.add("全国疫情地图",data,"china")
map. set_global_opts(
visualmap_opts=VisualMapOpts(
    is_show=True,#是否显示
    is_piecewise=True,#是否分段
    pieces=[
        {"min" : 1,"max": 9, "label": "1-9人","color": "#CCFFFF"},
        { "min": 10,"max" : 99,"label" : "10-99人","color":"#FFFF99"},
        { "min": 100,"max": 499,"label": "99-499人","color" :"#FF9966"},
        {"min": 500,"max": 999,"label": "499-999人","color":"#FF6666"},
        { "min": 1000,"max": 9999,"label": "1000-9999人","color":"#CC3333"},
        { "min" : 10000,"label" : "10000以上","color" :"#990033"}
])
)



map.render()



在这里插入图片描述
河南省疫情地图

import json
from pyecharts.charts import Map
from pyecharts.options import VisualMapOpts

map=Map()

data1=open("E:/桌面文件/疫情.txt",'r',encoding="UTF-8")
data2=data1.read()
JSON_data=json.loads(data2)

province=JSON_data["areaTree"][0]["children"][3]["children"]
data=[]

for i_data in province:
    province_name=i_data["name"]
    province_name = province_name + "市"
    print(province_name)
    province_num=i_data["total"]["confirm"]
    yuan_data=(province_name,province_num)
    data.append(yuan_data)
print(data)
map.add("河南省疫情地图",data,"河南")
map. set_global_opts(
visualmap_opts=VisualMapOpts(
    is_show=True,#是否显示
    is_piecewise=True,#是否分段
    pieces=[
        {"min" : 1,"max": 9, "label": "1-9人","color": "#CCFFFF"},
        { "min": 10,"max" : 99,"label" : "10-99人","color":"#FFFF99"},
        { "min": 100,"max": 499,"label": "99-499人","color" :"#FF9966"},
        {"min": 500,"max": 999,"label": "499-999人","color":"#FF6666"},
        { "min": 1000,"max": 9999,"label": "1000-9999人","color":"#CC3333"},
        { "min" : 10000,"label" : "10000以上","color" :"#990033"}
])
)



map.render()





在这里插入图片描述

柱状图

from pyecharts.charts import Bar
from pyecharts.options import *
#构建柱状图对象
bar = Bar()
#添加x轴数据
bar.add_xaxis(["中国","美国","英国"])
#添加y轴数据
bar.add_yaxis ("GDP",[30,20,10])
#绘图
bar.render("基础柱状图.html" )

在这里插入图片描述

XY轴反转

bar.reversal_axis()

在这里插入图片描述

小结

在这里插入图片描述

时间线柱状图

#创建时间线
from pyecharts.charts import Bar,Timeline
from pyecharts.options import *
bar1= Bar()
bar1.add_xaxis(["中国","美国","英国"])
bar1.add_yaxis(" GDP",[30,20,10],label_opts=LabelOpts(position="right"))
bar1.reversal_axis()
bar2=Bar()
bar2.add_xaxis(["中国","美国","英国"])
bar2.add_yaxis("GDP",[50,30,20],label_opts=LabelOpts(position="right"))
bar2.reversal_axis()
#创建时间线对象
timeline = Timeline()#timeline对象添加bar柱状图
timeline.add(bar1,"2021年GDP")
timeline.add(bar2,"2022年GDP")
#通过时间线绘图
timeline.render("基础柱状图-时间线.html")

在这里插入图片描述

自动播放

#设置自动播放
timeline.add_schema(
play_interval=1000,
#自动播放的时间间隔,单位毫秒
is_timeline_show=True,
#是否在自动播放的时候,显示时间线
is_auto_play=True,
#是否自动播放
is_loop_play=True,
#是否循环自动播放
)

在这里插入图片描述

#创建时间线
from pyecharts.charts import Bar,Timeline
from pyecharts.options import *
from pyecharts.globals import ThemeType
bar1= Bar()
bar1.add_xaxis(["中国","美国","英国"])
bar1.add_yaxis(" GDP",[30,20,10],label_opts=LabelOpts(position="right"))
bar1.reversal_axis()
bar2=Bar()
bar2.add_xaxis(["中国","美国","英国"])
bar2.add_yaxis("GDP",[50,30,20],label_opts=LabelOpts(position="right"))
bar2.reversal_axis()
#创建时间线对象
timeline = Timeline({"theme":ThemeType.LIGHT})#timeline对象添加bar柱状图
timeline.add(bar1,"2021年GDP")
timeline.add(bar2,"2022年GDP")


#设置自动播放
timeline.add_schema(
play_interval=1000,
#自动播放的时间间隔,单位毫秒
is_timeline_show=True,
#是否在自动播放的时候,显示时间线
is_auto_play=True,
#是否自动播放
is_loop_play=True,
#是否循环自动播放
)
#通过时间线绘图
timeline.render("基础柱状图-时间线.html")

在这里插入图片描述

小结

在这里插入图片描述

动态柱状图

sort排序

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

my_list=[['a',33],['b',90],['c',12]]


def choose_sort_key(element):
    return element[1]

my_list.sort(key=choose_sort_key,reverse=True)
print(my_list)

练习动态柱状图

from pyecharts.charts import Bar, Timeline
from pyecharts.options import *
from pyecharts.globals import ThemeType

def sort_dta(element):
    return element[1]

f=open("E:/桌面文件/1960-2019全球GDP数据.csv","r",encoding="GB2312")
data=f.readlines()
f.close()
data.pop(0)
data_culi=[]
data_dirc={}
for element in data:
    data_culi.append(element.strip())

for j in data_culi:
    year=int(j.split(",")[0])
    country=j.split(",")[1]
    GDP=float(j.split(",")[2])
    try:
        data_dirc[year].append([country,GDP])
    except KeyError:
        data_dirc[year]=[]
        data_dirc[year].append([country, GDP])
list_year_key=sorted(data_dirc.keys())
timeline = Timeline({"theme": ThemeType.LIGHT})  # timeline对象添加bar柱状图
for element2 in list_year_key:
    data_dirc[element2].sort(key=sort_dta, reverse=True)
    year_data=data_dirc[element2][0:8:1]
    print(year_data)
    x_data = []
    y_data = []
    for  i in year_data:
        x_data.append(i[0])
        y_data.append(i[1]/100000000)
    x_data.reverse()
    y_data.reverse()
    bar = Bar()
    bar.add_xaxis(x_data)
    bar.add_yaxis(" GDP(亿)", y_data, label_opts=LabelOpts(position="right"))
    bar.reversal_axis()
    # 创建时间线对象
    bar.set_global_opts(

        title_opts=TitleOpts(
            title=f"{element2}全球前8GDP数据"
        )

    )

    timeline.add(bar, str(element2))


timeline.add_schema(
play_interval=500,
#自动播放的时间间隔,单位毫秒
is_timeline_show=True,
#是否在自动播放的时候,显示时间线
is_auto_play=True,
#是否自动播放
is_loop_play=True,
#是否循环自动播放
)



#通过时间线绘图
timeline.render("GDP时间线.html")

在这里插入图片描述

  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 使用Python中的Seaborn库可以很方便地绘制出柱状图。具体步骤如下: 1. 导入Seaborn库和需要使用的数据集。 2. 使用Seaborn的barplot()函数绘制柱状图,设置x轴和y轴的标签、标题等。 3. 可以使用其他Seaborn函数对图形进行美化,如设置颜色、调整字体大小等。 示例代码如下: ``` import seaborn as sns import matplotlib.pyplot as plt # 导入数据集 tips = sns.load_dataset("tips") # 绘制柱状图 sns.barplot(x="day", y="total_bill", data=tips) # 设置x轴和y轴的标签、标题等 plt.xlabel("Day of the Week") plt.ylabel("Total Bill") plt.title("Total Bill by Day of the Week") # 显示图形 plt.show() ``` 运行以上代码,即可得到一张以“day”为x轴,“total_bill”为y轴的柱状图。 ### 回答2: Seaborn是一个基于Matplotlib的Python可视化库,用于在统计数据中生成各种图表。Seaborn比Matplotlib更容易使用,提供了更多的可视化选项和颜色主题。Seaborn的一些常见的图表类型包括折线图、散点图、直方图和柱状图等。其中,柱状图常用于展示不同类别的数据项之间的比较。下面我们就针对Python中Seaborn库如何实现绘制柱状图进行简要的介绍。 1. 导入Seaborn库和数据 首先在Python环境中导入seaborn库和需要展示的数据。可以利用Pandas读取数据,将文件存储到dataframe中。 ``` import seaborn as sns import pandas as pd df = pd.read_csv('data.csv') ``` 2. 绘制单变量的柱状图 如果想要对单个变量进行可视化,我们可以使用countplot()函数。这个函数默认绘制每个类别的频数,或者可以直接指定某个变量的计数。下面展示了如何绘制类别数据的频数。 ``` sns.countplot(x='Category', data=df) ``` 其中,x参数指定用于分组的变量名,data参数为数据来源。 3. 绘制双变量的柱状图 如果我们想要比较两个变量之间的关系,我们可以使用barplot()函数。这个函数会对第一个变量按照第二个变量进行分组(如按照性别分组,显示不同性别下的工资情况)。 ``` sns.barplot(x='Gender', y='Salary', data=df) ``` 其中,x参数指定用于分组的变量名,y参数指定用于比较的变量名,data参数为数据来源。 4. 设置常用参数 柱状图的展示还可以设置其他常见的参数,比如柱状图的颜色、标签和字体等。下面是柱状图的常用参数: - color:柱状图的颜色 - hue:柱状图的细分颜色,通常是第三个变量 - order:柱状图的顺序 - hue_order:柱状图中hue的顺序 - palette:调色板名称 - errorbar:是否显示误差条。 下面是针对以上参数的使用举例: ``` sns.barplot(x='Gender', y='Salary', hue='Education', data=df, palette='BuGn') ``` 其中,hue参数将性别按学历细分,palette设置了调色板名称。 最后,Seaborn库中还支持绘制多重柱状图、堆积柱状图等。这些图像的设计原则是简单易懂且美观,帮助用户更好地理解数据。所以在实际使用中,我们可以根据数据的需求和特点结合实际情况选择使用哪种柱状图。 ### 回答3: Seaborn是Python数据可视化库,它是基于Matplotlib构建的高级图形库。Seaborn的优点在于它提供了与Matplotlib相似的API,并且可以轻松地实现漂亮的数据可视化效果。 绘制柱状图是Seaborn中常见的任务之一。使用Seaborn绘制柱状图,可以通过几个简单的步骤来完成。 1.引入Seaborn和Matplotlib库: ```python import seaborn as sns import matplotlib.pyplot as plt ``` 2.设置绘图风格: ```python sns.set_style('whitegrid') ``` 3.创建数据,可以使用pandas库来创建: ```python import pandas as pd data = pd.DataFrame({'name': ['A', 'B', 'C', 'D', 'E'], 'score': [82, 75, 65, 90, 76]}) ``` 4.绘制柱状图: ```python sns.barplot(x='name', y='score', data=data, color='skyblue') plt.show() ``` 上面的代码中,x参数指定x轴的数据列名,y参数指定y轴的数据列名,data参数指定使用的数据集,color参数指定绘制的颜色。 最后使用plt.show()命令显示图形。 除此之外,Seaborn还有很多其他绘图函数,包括线图、散点图、热力图等,可以根据具体需求进行选择和使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值