暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

用python绘制中国地区

牛谈琴 2021-01-09
230

1问题的提出

前几天工作的原因需要绘制中国地图,大致是这个样子的:然而自己画的图总是不对劲,数字无法显示在地图上,原始的数据是:

湖北省: 562
江苏省: 523
....
云南省:158

后来在群里的小伙伴的帮助下自己慢慢地知道问题所在,我们需要将每个地方的省去掉才行.

2问题的解决

Excel方法

做为一名数据分析师除了会掌握高大上的python(而且python还不是很会才用),还需要会基本的Excel. 这个问题在Excel只需要写一句简单的命令就可以了:基本命令如下:

= left(A2,LEN(A2)-1)

结果如下:

python处理

接下来自己想用python去处理这个问题,毕竟只有在实践中解决问题才会有所进步。

在python中的基本步骤为:

  1. 导入数据
  2. 处理数据
  3. 绘制图表

在数据处理部分有两种方法,这个在后面介绍:

from pandas as pd
from pyecharts.charts import Map
from pyecharts import options as opts
#数据读取
df = pd.read_excel("province.xls")
df['count'] = df['counts'].astype("int")  #将count中的原来是浮点数改为整数
province = list(df['counts'])  #将数据处理成列表形式
counts = list(df['counts'])   #将列表处理成列表形式
#数据处理方式(一)
print([[z[0][:-1],z[1]] for z in zip(province,counts)])

#数据处理方式(二)
df['province'] = df['province'].str[0:-1]

#绘制图表
c = (
  Map()
  .add("各省销售数据",[[z[0][:-1],z[1]] for z in zip(province,counts)])
 #写法二add.("各省销售数据",list(z) for z in zip(province,counts))
  .set_global_opts(
   title_opts = opts.TitleOpts(title = "香烟销量")
   visualmap_opts = opts.VisualMapOpts(max_ = 200,is_piecewise = True),
 )
  .render("map_province.html")
)

最后的结果展示为:

3学习总结

  • 注意编程的细节 自己虽然在看官网文档,打印出官网的数据结构,但是自己画图没有很好地掌握,多亏了小伙伴的提醒才发现问题。*要及时总结。这个问题是礼拜二出现的,但是直到现在才写完,平时应该看到马上马上记录下来,哪怕记下素材也是可以的,然后再进行处理。
  • 总结基本的用法 上面的一些代码都是一些基本的用法,例如赋值,df['count'] = df['count'].astype('int')
    基本的字符串的操作df['province'] = df['province'].str[0:-1]
    这个在后面的学习中需要不断熟练操作。

往期回顾

Pandas学习笔记(二)

Pandas学习笔记(一)

python基础(一)

文章转载自牛谈琴,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论