import pandas as pd import numpy as np from pyecharts.charts import Map from pyecharts import options as opts # 读取数据文件 data = pd.read_csv('各省高考人数2.0.csv', encoding='utf-8') maps=( Map(opts.InitOpts(width="1400px",height="700px",theme='westeros')) .add("省份",#系列名称 [list(i) for i in zip (data['省份'],data['人数/万'])], "china", is_map_symbol_show=False,#省份处不显示小红点 ) .set_global_opts( title_opts=opts.TitleOpts(title="2023年各省高考人数",#标题 title_textstyle_opts==optsTextStyleOpts(font_size=20),#字体大小 pos_left='20%', pos_top='5%'),#标题位置 legend_opts=opts.LegendOpts(is_show=False),#不显示图例 visualmap_opts=opts.VisualMapOpts(max_=150.0, is_piecewise=True, split_number=4,#将数据分为四段 range_text=['人数/万',''],#图例显示文字单位 range_color=["#d9ecf2","#a2d5f2","#e8ffc1","#a5ecd7"], pos_left='20%', pos_top='70%', ), )) maps.render("./2023各省高考人数.html")显示positional argument follows keyword argument帮我修改一下程序
请将代码中的以下部分:
title_textstyle_opts==optsTextStyleOpts(font_size=20),
修改为:
title_textstyle_opts=opts.TextStyleOpts(font_size=20),
同时,将以下部分:
range_text=['人数/万',''],
修改为:
range_text=['人数/万',''],
这样修改后,代码应该可以正常运行了。
import pandas as pd import numpy as np path_marry=r"D:\迅雷下载\新建文件夹\数据集\数据可视化数据集\结婚离婚\结婚数据.csv" path_divorse=r"D:\迅雷下载\新建文件夹\数据集\数据可视化数据集\结婚离婚\离婚数据.csv" marry_data=pd.read_csv(path_marry) divorse_data=pd.read_csv(path_divorse) marry_data=marry_data.set_index(marry_data['地区']).drop(columns=["地区"]) #将索引变成地区 demo=marry_data.transpose() #transpose可以实现行列互换 demo["全国合计"]=demo.sum(axis=1) #沿着1轴相加 marry_data=demo.transpose() #取出要可视化的行列,一般索引为X轴数据,VALUE值为Y轴数据 show_data2=show_data2.sort_values() show_data2=marry_data["2019年"] show_data2=show_data2.iloc[:-1] x_axis_data=show_data2.index.tolist() y_axis_data=show_data2.values.tolist() from pyecharts import options as opts from pyecharts.charts import Bar from pyecharts.faker import Faker c = ( Bar(init_opts=opts.InitOpts(width="1000px",height="700px")) .add_xaxis(x_axis_data) .add_yaxis("2019年结婚登记数量(万对)", y_axis_data) .reversal_axis() #进行轴的转换 .set_series_opts(label_opts=opts.LabelOpts(position="right")) .set_global_opts(title_opts=opts.TitleOpts(title="全国2019年结婚登记数量(万对)")) ) c.render_notebook()为什么这个代码没有升序显示
在你修改代码时,将 show_data2=show_data2.sort_values()
放在了 show_data2=marry_data["2019年"]
的后面,这样的话排序并没有生效。你需要将这行代码放在读取数据和筛选数据之间,即在 x_axis_data
和 y_axis_data
定义之前:
import pandas as pd
import numpy as np
from pyecharts import options as opts
from pyecharts.charts import Bar
path_marry=r"D:\迅雷下载\新建文件夹\数据集\数据可视化数据集\结婚离婚\结婚数据.csv"
marry_data=pd.read_csv(path_marry)
marry_data=marry_data.set_index(marry_data['地区']).drop(columns=["地区"])
demo=marry_data.transpose()
demo["全国合计"]=demo.sum(axis=1)
marry_data=demo.transpose()
show_data2=marry_data["2019年"]
show_data2=show_data2.sort_values() # 将这行代码放在读取数据和筛选数据之间
show_data2=show_data2.iloc[:-1]
x_axis_data=show_data2.index.tolist()
y_axis_data=show_data2.values.tolist()
c = (
Bar(init_opts=opts.InitOpts(width="1000px",height="700px"))
.add_xaxis(x_axis_data)
.add_yaxis("2019年结婚登记数量(万对)", y_axis_data)
.reversal_axis()
.set_series_opts(label_opts=opts.LabelOpts(position="right"))
.set_global_opts(title_opts=opts.TitleOpts(title="全国2019年结婚登记数量(万对)"))
)
c.render_notebook()
这样的话,就可以升序排列展示了。
import pandas as pd import numpy as np from pyecharts.charts import Bar import pyecharts.options as opts path_marry = r"D:\迅雷下载\新建文件夹\数据集\数据可视化数据集\结婚离婚\结婚数据.csv" path_divorse = r"D:\迅雷下载\新建文件夹\数据集\数据可视化数据集\结婚离婚\离婚数据.csv" marry_data = pd.read_csv(path_marry) divorse_data = pd.read_csv(path_divorse) divorse_data = divorse_data.set_index(divorse_data["地区"]).drop(columns=["地区"]) show_data2 = marry_data["2019年"] show_data3 = divorse_data["2019年"] show_data4=pd.DataFrame() show_data4["结婚登记数"]=show_data2 show_data4["离婚登记数"]=show_data3 show_data4["结婚登记数占比"]=show_data4["结婚登记数"]/show_data4.sum(axis=1) show_data4["离婚登记数占比"]=1-show_data4["结婚登记数占比"] x_axis_data = show_data3.index.tolist() y_axis_data1 = show_data2.values.tolist() y_axis_data2 = show_data3.values.tolist() c = ( Bar(init_opts=opts.InitOpts(width="800px", height="700px")) .add_xaxis(x_axis_data) .add_yaxis( "2019年结婚登记数量(万对)" , y_axis_data1 ,stack="happy" ,itemstyle_opts={"color":"#006400"} ) .add_yaxis( "2019年离婚登记数量(万对)" , y_axis_data2 ,stack="happy" ) .reversal_axis() .set_series_opts(label_opts=opts.LabelOpts(position="right")) .set_global_opts( title_opts=opts.TitleOpts(title="全国各省2019年结婚登记数量(万对)") ,legend_opts=opts.LegendOpts( pos_left="40%" ,orient="vertical" ) ) ) c.render_notebook()请对这段代码修改,转为显示2个y变量的占比(总和为1)
import pandas as pd import numpy as np from pyecharts.charts import Bar import pyecharts.options as opts
path_marry = r"D:\迅雷下载\新建文件夹\数据集\数据可视化数据集\结婚离婚\结婚数据.csv" path_divorse = r"D:\迅雷下载\新建文件夹\数据集\数据可视化数据集\结婚离婚\离婚数据.csv"
marry_data = pd.read_csv(path_marry) divorse_data = pd.read_csv(path_divorse) divorse_data = divorse_data.set_index(divorse_data["地区"]).drop(columns=["地区"])
show_data2 = marry_data["2019年"] show_data3 = divorse_data["2019年"]
total = show_data2 + show_data3
show_data4=pd.DataFrame() show_data4["结婚登记数"]=show_data2/total show_data4["离婚登记数"]=show_data3/total
x_axis_data = show_data3.index.tolist() y_axis_data1 = show_data4["结婚登记数"].values.tolist() y_axis_data2 = show_data4["离婚登记数"].values.tolist()
c = ( Bar(init_opts=opts.InitOpts(width="800px", height="700px")) .add_xaxis(x_axis_data) .add_yaxis( "结婚登记数占比", y_axis_data1, stack="happy", itemstyle_opts={"color":"#006400"} ) .add_yaxis( "离婚登记数占比", y_axis_data2, stack="happy") .reversal_axis() .set_series_opts(label_opts=opts.LabelOpts(position="right")) .set_global_opts( title_opts=opts.TitleOpts(title="全国各省2019年结婚离婚登记占比"), legend_opts=opts.LegendOpts( pos_left="40%", orient="vertical")) )
c.render_notebook()
相关推荐
















