Python可视化
地图可视化
pyecharts绘制各省市GDP
from pyecharts.globals import ThemeType #引入主题
Map(init_opts=opts.InitOpts(width="1000px", height="600px",theme = ThemeType.DARK)) #添加主题ThemeType.DARK
c = (
Map(init_opts=opts.InitOpts(width="1000px", height="600px")) #可切换主题
.set_global_opts(
title_opts=opts.TitleOpts(title="2019年各省GDP分布图 单位:亿元"),
visualmap_opts=opts.VisualMapOpts(
min_=1000,
max_=110000,
range_text = ['GDP总量(亿)颜色区间:', ''], #分区间
is_piecewise=True, #定义图例为分段型,默认为连续的图例
pos_top= "middle", #分段位置
pos_left="left",
orient="vertical",
split_number=10 #分成10个区间
)
)
.add("GDP",list,maptype="china") #将list传入,地图类型为中国地图
.render("Map2.html")
)
folium绘制热力图
#folium-热力图
import pandas as pd
import folium
from folium import plugins
data = pd.read_csv('./poi_scenic_spot.csv',encoding='utf-8')
#heatmap1 = folium.Map(location=[23.122373,113.268027], zoom_start=10,control_scale = True) # 绘制地图,确定聚焦点,默认底图(加载慢)
heatmap1 = folium.Map(location=[23.122373,113.268027], zoom_start=10,control_scale = True,tiles='stamen Terrain') #刺激战场底图
#heatmap1 = folium.Map(location=[23.122373,113.268027], zoom_start=10,control_scale = True,tiles='Mapbox Bright') #mapbox底图
#heatmap1 = folium.Map(location=[23.122373,113.268027], zoom_start=10,control_scale = True,tiles='stamentoner') #黑白底图
#heatmap1 = folium.Map( #高德底图
# location=[23.122373,113.268027],
# zoom_start=15,
# control_scale = True,
# tiles='http://webrd02.is.autonavi.com/appmaptile?lang=zh_cn&size=1&scale=1&style=8&x={x}&y={y}&z={z}',
# attr='© <a href="http://ditu.amap.com/">高德地图</a>'
# )
folium.Marker([23.122373,113.268027],popup='<i>J哥</i>',icon=folium.Icon(icon='cloud',color='green')).add_to(heatmap1) #创建中心标记
heatmap1.add_child(plugins.HeatMap([[row["lat"],row["lon"]] for name, row in data.iterrows()])) #传入经纬度
heatmap1.save("folium_map1.html") #生成网页
folium绘制聚合散点图
#folium-聚合散点地图
import pandas as pd
import folium
from folium import plugins
data = pd.read_csv('./poi_scenic_spot.csv',encoding='utf-8')
plotmap1 = folium.Map(location=[23.122373,113.268027], zoom_start=10,control_scale = True,tiles='stamentoner')
folium.Marker([23.122373,113.268027],popup='<p style="color: green">我是J哥</p>',icon=folium.Icon(icon='cloud',color='green')).add_to(plotmap1) #创建中心标记
plotmap1.add_child(plugins.MarkerCluster([[row["lat"],row["lon"]] for name, row in data.iterrows()]))
plotmap1.save('folium_map2.html')
统计图表
matplotlib
- 画直方图
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei'] #设置加载的字体名
plt.rcParams['axes.unicode_minus'] = False #解决保存图像是负号的问题
data['latitude'].plot(ind='hist', bins=100) #直方图
plt.xlabel('Latitude')
plt.title('Latitude Frequency')
plt.show()
Seaborn
-
Seaborn是一个基于matplotlib且数据结构与pandas统一的统计图制作库,旨在以数据可视化为中心来挖掘与理解数据
-
导入模块
import matplotlib.pyplot as plt
import seaborn as sns
%matplotlib inline #在Jupyter中正常显示图形
- 导入数据
#Seaborn内置数据集导入
dataset = sns.load_dataset('dataset')
#外置数据集导入(以csv格式为例)
dataset = pd.read_csv('dataset.csv')
- 设置画布
#设置一块大小为(12,6)的画布
plt.figure(figsize=(12, 6))
- 输出图形
#整体图形背景样式,共5种:"white", "dark", "whitegrid", "darkgrid", "ticks"
sns.set_style('white')
#以条形图为例输出图形
sns.barplot(x=x,y=y,data=dataset,...)
- 保存图形
#将画布保存为png、jpg、svg等格式图片
plt.savefig('jg.png')
- 绘制不同类型的图
https://mp.weixin.qq.com/s?__biz=MzAwMjYxNjcwMw==&mid=2456406495&idx=1&sn=c33b23366e7043920868c6fb516de762&chksm=8d5ad5cfba2d5cd9890fd88756c07a9db2ce16d1dbfd688d504d154969cb24d4bd4ce6385319&scene=21#wechat_redirect
- 相关性分析
import pandas as pd
import matplotlib.pyplot as plt
import matplotlib as mpl
import seaborn as sns
%matplotlib inline
sns.set_style('white') #设置图形背景样式为白色
df = pd.read_excel("D:\data\地产数据分析\广州二手房.xlsx")
df = df[['室','厅','面积(㎡)','层数','成交单价(元/㎡)']] #选择需要的列
df.rename(columns={'室': 'room', '厅': 'hall', '面积(㎡)': 'area', '层数': 'floor', '成交单价(元/㎡)': 'price'}, inplace=True)
fig,axes=plt.subplots(1,2,figsize=(12,5)) #分成1*2个图表
sns.regplot(x= 'room',y='price',data=df,color='r',marker='+',ax=axes[0])
sns.regplot(x='hall',y='price',data=df,color='g',marker='*',ax=axes[1])
窗口程序
pyqt5
- 装pyqt5插件
- 窗口拖拽设计,生成run.ui
- 编辑run.py,将业务代码的函数调用注册到窗口代码
- 编辑业务代码,传入窗口程序获取到的参数