fig_data = data.query('Year>=1995 and Year<=2019 and AvgTemperature>-72')[['Year','AvgTemperature']].groupby(by='Year') mean_data = fig_data.agg({'AvgTemperature':'mean'}) x = np.array(mean_data.index) mean_y = np.array(mean_data['AvgTemperature']) min_data = fig_data.agg({'AvgTemperature':'min'}) x = np.array(mean_data.index) min_y = np.array(min_data['AvgTemperature']) fig = plt.figure(figsize=(14,6)) ax1 = fig.add_subplot(111) ax1.set_xlabel('年份') ax1.set_ylabel('日均气温') ax1.set_ylim(14.5,17) ax1.margins(x=0.01) plt.title('1995-2019年期间世界气温变化趋势') ax1.bar(x, height=mean_y, color='cadetblue', width=0.5, label='平均日均气温') ax1.legend(loc=2) ax2 = ax1.twinx() ax2.margins(x=0.01) ax2.plot(x, min_y, color='purple', label='最低日均气温') ax2.legend() plt.savefig("5-27.png",dpi=600,bbox_inches='tight')
时间: 2023-09-15 16:18:45 浏览: 112
这段代码是用于绘制1995年至2019年期间世界气温变化趋势的图表。首先,使用pandas库的query函数筛选出符合条件的数据,然后按照年份分组并计算每年的平均气温和最低气温。接着,利用matplotlib库绘制双Y轴柱状图和折线图,其中柱状图表示每年的平均气温,折线图表示每年的最低气温。最后,将图表保存至本地。
相关问题
import matplotlib.pyplot as plt import plotly.express as px data_canada = px.data.gapminder().query("country == 'Canada'") fig = px.bar( data_canada, # 数据集 x='year', # x轴 y='pop', # y轴 color ='pop' ) fig.show() 怎么让柱形图上面显示数据
可以在生成柱形图的时候,添加一个参数text来指定要在柱形图上显示的数据。具体地,可以将text参数设置为一个字符串,表示要显示的数据列的名称。例如,要在柱形图上显示年份和人口数量,可以将text参数设置为"year, pop"。修改后的代码如下:
```
import matplotlib.pyplot as plt
import plotly.express as px
data_canada = px.data.gapminder().query("country == 'Canada'")
fig = px.bar(data_canada, x='year', y='pop', color='pop', text='year, pop')
fig.show()
```
这样,生成的柱形图上方会显示每个柱子对应的年份和人口数量。可以通过修改text参数的值来控制要在柱形图上显示的数据。
python空间分布图
### 如何使用 Python 绘制空间分布图
在 Python 中绘制空间分布图通常涉及地理数据可视化,这可以通过多种库实现。以下是几种常用的方法和技术。
#### 使用 Matplotlib 和 Basemap 创建基本的空间分布图
Matplotlib 是一个广泛使用的绘图库,而 Basemap 则是一个扩展包,专门用于处理地图投影和地理坐标转换。
```python
from mpl_toolkits.basemap import Basemap
import matplotlib.pyplot as plt
import numpy as np
fig, ax = plt.subplots(figsize=(8, 6))
m = Basemap(projection='mill', llcrnrlat=-90, urcrnrlat=90,
llcrnrlon=-180, urcrnrlon=180, resolution='c')
m.drawcoastlines()
m.fillcontinents(color='#cc9966', lake_color='#99ffff')
m.drawmapboundary(fill_color='#99ffff')
lons = np.random.uniform(-180, 180, size=50)
lats = np.random.uniform(-90, 90, size=50)
x, y = m(lons, lats)
m.scatter(x, y, marker='o', color='red', zorder=5)
plt.title('Random Points on a Map with Basemap and Matplotlib')
plt.show()
```
此代码片段展示了如何利用随机生成的经纬度点,在世界地图上标记位置[^1]。
#### GeoPandas 结合 Folium 进行交互式 Web 地图制作
GeoPandas 提供了易于操作的空间数据分析功能;Folium 可以轻松地将这些分析结果转化为 Leaflet.js 支持的地图形式。
```python
import geopandas as gpd
import folium
world = gpd.read_file(gpd.datasets.get_path('naturalearth_lowres'))
cities = gpd.read_file(gpd.datasets.get_path('naturalearth_cities'))
m = folium.Map(location=[48., 5.], zoom_start=5, tiles="Stamen Terrain")
folium.GeoJson(world).add_to(m)
for idx, row in cities.iterrows():
folium.CircleMarker(
location=[row.geometry.y, row.geometry.x],
radius=5,
popup=row.name,
fill=True,
color="#3186cc",
fill_opacity=0.7
).add_to(m)
m.save("index.html") # Save to html file or display inline within Jupyter Notebook.
print("Map saved.")
```
这段脚本读取国家边界以及城市中心的数据集,并将其渲染成带有标注的城市名称的地图[^2]。
#### Plotly Express 实现快速美观的空间布局呈现
Plotly Express 是 Plotly 的高级接口,它简化了许多常见的图形配置过程,非常适合初学者入门。
```python
import plotly.express as px
df = px.data.gapminder().query("year==2007")
fig = px.scatter_geo(df, locations="iso_alpha", hover_name="country",
size="pop", projection="natural earth")
fig.update_layout(title_text='World Population by Country (Year 2007)')
fig.show()
```
上述例子选取了一个公开可用的世界各国人口统计数据集作为输入源,通过简单的几行命令就能得到一张全球范围内的散点分布图[^3]。
阅读全文
相关推荐
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)