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='&copy; <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,将业务代码的函数调用注册到窗口代码
  • 编辑业务代码,传入窗口程序获取到的参数
posted @ 2022-10-05 09:29  z5onk0  阅读(123)  评论(0编辑  收藏  举报