利用python画地区省销售热力图
时间: 2023-10-05 07:13:29 浏览: 262
要画地区省销售热力图,你需要使用 Python 库中的地图库和数据可视化库。其中,地图库可以选择 basemap 或者 folium,数据可视化库可以选择 seaborn 和 matplotlib。以下是一个示例代码:
```python
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
import folium
from folium.plugins import HeatMap
# 读取销售数据
sales_data = pd.read_csv("sales_data.csv")
# 计算每个省份的销售总额
province_sales = sales_data.groupby('province')['sales'].sum().reset_index()
# 读取中国地图shp文件
china_map = 'CHN_adm1.shp'
# 用basemap绘制地图
from mpl_toolkits.basemap import Basemap
fig, ax = plt.subplots(figsize=(10,20))
m = Basemap(projection='lcc',lat_0=33,lon_0=110,width=8E6,height=8E6,resolution='l')
m.drawcoastlines(color='gray')
m.drawcountries(color='gray')
m.readshapefile(china_map,'states',drawbounds=True)
# 将各省份销售总额数据合并到地图数据
merged_data = pd.DataFrame({
'names': [d['NL_NAME_1'] for d in m.states_info],
'sales': province_sales['sales']
})
merged_data.set_index('names', inplace=True)
# 用seaborn绘制热力图
sns.set_style("white")
plt.figure(figsize=(12, 8))
sns.heatmap(merged_data, cmap='YlGnBu')
# 用folium绘制热力图
m = folium.Map(location=[35, 105], zoom_start=5, tiles='Stamen Terrain')
HeatMap(province_sales).add_to(m)
m.save('sales_heatmap.html')
```
在这个示例代码中,我们使用了 basemap 库和 folium 库来绘制地图,使用了 seaborn 库和 matplotlib 库来绘制热力图。你需要根据自己的数据情况进行调整和修改。
阅读全文