地图投影散点图(颜色代表数值大小)&累计变量直方图主要代码(Python,毕设期间总结)

一、地图投影散点图(颜色代表数值大小)

cf3 = ax3.scatter(lon_eu1,lat_eu1,s=50
                  , marker = 'o',c = number_eu,cmap='viridis_r'
                  ,transform=ccrs.PlateCarree(),vmin=0,vmax=9,
                   )
plt.text(-48,45,"(c)",fontdict={'size':'20','color':'k'},backgroundcolor = 'w')
# cb1 = fig.colorbar(cf1, orientation='vertical',ticks = np.arange(0, 10, 1),
#                   fraction=0.07, pad = 0.03)

colorbar = fig.add_axes([0.1, 0.05, 0.8, 0.03])
cbar1 = fig.colorbar(cf1,ticks = [0,1,2,3,4,5,6,7,8,9],cax = colorbar,orientation='horizontal',
                      format='%d',extendrect=True, drawedges=False)
cbar1.ax.tick_params(labelsize=12)

        这里重点是c = number_eu这个参数,它代表每一个点的大小并投影到cmap色标上,而lon_eu1、lat_eu1两个对于不想画的点在之前一步赋值为0即可,如下所示:

lon_eu1 = lon_eu1.T
for i in range(lon_eu.shape[0]):
    for j in range(lat_eu.shape[0]):
        if n3[i,j] == 0:
            lon_eu1[i,j] = 0
            lat_eu1[i,j] = 0
#这里我是将n3=0的位置赋值为0,就是不把它画在图上

二、累计变量直方图

 

import matplotlib.pyplot as plt
import numpy as np
from matplotlib import rcParams
from matplotlib.ticker import MultipleLocator, FormatStrFormatter

# plt.rcParams['font.serif']=['Times New Roman']
# plt.rcParams['font.sans-serif'] = ['SimSun'] #'SimSun'是宋体
# plt.yticks(fontfamily='Times New Roman')

font1={'family':'Times New Roman','weight':'bold','size':10}
#设置全局中文宋体,英文为Times New Roman
config = {
            "font.family": 'serif',
            "font.size": 11.5,# 相当于小四大小
            "mathtext.fontset": 'stix',#matplotlib渲染数学字体时使用的字体,和Times New Roman差别不大
            "font.serif": ['SimSun'],#宋体
            'axes.unicode_minus': False # 处理负号,即-号
         }
rcParams.update(config)

# 创建字典
ins_name = ['4800-5000hPa','5000-5200hPa','5200-5400hPa','5400-5600hPa','5600-5800hPa']
mon_name = ['1月','2月','3月','4月','5月','6月','7月','8月','9月','10月','11月','12月']


result1 = dict(zip(ins_name,mon_per1))
fig=plt.figure(figsize=(7,8))

ax1=plt.subplot(111)

width = 0.4
bottom1 = np.zeros(12)
bottom2 = np.zeros(12)
bottom3 = np.zeros(12)

#因为我要画五种强度的柱状图并且强度递进,所以我将色标“hot”分成5份投影到category_colors1
category_colors1 = plt.colormaps['hot'](
    np.linspace(0.15, 0.85, 5))

# =============================================================================
# picture1
# =============================================================================

kk=0
for boolean, weight_count in result1.items():
    p1 = ax1.bar(mon_name, weight_count, width, label=boolean, bottom=bottom1,color = category_colors1[kk]) 
    bottom1 += weight_count
    kk+=1
plt.yticks(range(0,17,2))

#标注每一个柱形代表的数值大小
for nn in range(12):     
    sum_data = sum(mon_per1[:,nn])
    plt.text(nn-0.35,sum_data+0.65,str(round(sum_data,2))+'%',fontdict = font1,va='center',ha='left')
#设置标签
plt.text(-0.7,13.8,"(a)",fontdict={'size':'15','color':'k'})

#做图注bbox_to_anchor控制图的位置大小,ncol对应图注个数,这里为5
ax1.legend(ncol=len(ins_name), bbox_to_anchor=(-0.08, 1.05),
              loc='lower left', fontsize=8)

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
Python可以使用多个库来绘制城市地图,其中最常用的包括matplotlib和folium。下面以这两个库为例,介绍如何使用Python绘制城市地图。 1. 使用matplotlib绘制城市地图: 首先,需要准备好地图的数据,一般为地理坐标(经纬度)和对应的数值,例如城市的人口密度数据。 导入matplotlib包,使用Basemap类来创建地图对象,并设置地图的中心点和缩放级别。 然后,通过调用Basemap对象的plot()方法来绘制地图,可以传入经纬度坐标和对应的数值,用不同颜色大小来表示不同数值。 最后,使用show()方法来显示地图。 以下是使用matplotlib绘制城市地图的简单示例代码: ``` python import matplotlib.pyplot as plt from mpl_toolkits.basemap import Basemap # 创建地图对象 map = Basemap(llcrnrlon=115, llcrnrlat=30, urcrnrlon=120, urcrnrlat=35, resolution='i') # 绘制海岸线 map.drawcoastlines() # 绘制国界线 map.drawcountries() # 绘制省界线 map.drawstates() # 绘制城市坐标点 x, y = map(116.4, 39.9) # 北京的经纬度 map.plot(x, y, 'ro', markersize=5) # 以红色圆点表示 # 显示地图 plt.show() ``` 2. 使用folium绘制城市地图: folium是基于leaflet.js的Python库,可以生成互动式的地图,具有缩放、标记和弹出式信息等功能。 首先,导入folium包,并创建一个Map对象,设置地图的中心点和缩放级别。 然后,通过调用Map对象的方法来添加地图的标记、弹出式信息等。 最后,使用save()方法将地图保存为html文件。 以下是使用folium绘制城市地图的简单示例代码: ``` python import folium # 创建地图对象 map = folium.Map(location=[39.9, 116.4], zoom_start=12) # 添加标记和弹出式信息 folium.Marker(location=[39.9, 116.4], popup='北京').add_to(map) # 保存地图为html文件 map.save('map.html') ``` 通过这些方法,可以利用Python绘制城市地图,进一步进行数据可视化和分析。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

福部里志364

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值