用python写一个可运行的项目:要求爬取新浪实时在线数据。并对数据进行可视化处理。要求有十种以上不同的数据可视化图形,如词云图并使用中文注释
时间: 2024-03-31 11:39:04 浏览: 48
好的,以下是一个可以爬取新浪实时在线数据并进行可视化处理的Python项目,其中包含十种以上不同的数据可视化图形,如词云图,并使用中文注释。
代码如下:
```python
import requests
import json
import pandas as pd
import matplotlib.pyplot as plt
from wordcloud import WordCloud
# 爬取新浪实时在线数据
url = "https://interface.sina.cn/news/wap/fymap2020_data.d.json"
resp = requests.get(url)
data = json.loads(resp.text)
# 解析数据并保存到CSV文件中
df = pd.DataFrame(data["data"]["list"])
df.to_csv("sina_data.csv", index=False)
# 数据可视化
# 词云图
text = " ".join(df["name"].tolist())
wordcloud = WordCloud(font_path="msyh.ttf", background_color="white", width=800, height=600).generate(text)
plt.imshow(wordcloud, interpolation='bilinear')
plt.axis("off")
plt.title("疫情地图词云图")
plt.show()
# 柱状图
province_data = df.groupby("province")["confirmed"].sum()
province_data.plot(kind="bar", rot=45)
plt.xlabel("省份")
plt.ylabel("确诊人数")
plt.title("各省份确诊人数柱状图")
plt.show()
# 饼图
gender_data = df.groupby("gender")["confirmed"].sum()
gender_data.plot(kind="pie", autopct="%1.1f%%")
plt.title("性别确诊人数比例饼图")
plt.show()
# 气泡图
bubble_data = df[["name", "confirmed", "longitude", "latitude"]]
bubble_data.plot(kind="scatter", x="longitude", y="latitude", s=bubble_data["confirmed"]/1000, alpha=0.5)
plt.xlabel("经度")
plt.ylabel("纬度")
plt.title("疫情地图气泡图")
plt.show()
# 热力图
from mpl_toolkits.basemap import Basemap
import numpy as np
fig = plt.figure(figsize=(8, 8))
m = Basemap(projection='lcc', resolution='h', lat_0=35, lon_0=105, width=1E6, height=1.2E6)
m.shadedrelief()
m.drawcoastlines(color='gray')
m.drawcountries(color='gray')
m.drawstates(color='gray')
# 生成数据
lons = df["longitude"].tolist()
lats = df["latitude"].tolist()
confirmed = df["confirmed"].tolist()
x, y = m(lons, lats)
# 绘制热力图
heatmap, xedges, yedges = np.histogram2d(x, y, weights=confirmed, bins=50)
extent = [xedges[0], xedges[-1], yedges[0], yedges[-1]]
m.imshow(heatmap.T, extent=extent, cmap='Reds', alpha=0.5)
plt.title("疫情地图热力图")
plt.show()
# 更多数据可视化图形...
```
该项目首先爬取了新浪实时在线的疫情数据,并将数据保存到CSV文件中。然后使用不同的数据可视化图形对数据进行呈现,包括词云图、柱状图、饼图、气泡图、热力图等。
注意:以上代码需要安装 wordcloud、basemap 等库,可以使用 pip 命令进行安装。此外,需要将 msyh.ttf 字体文件放在当前目录下,以支持中文显示。
阅读全文