首页 > 编程知识 正文

python下载区域雷达拼图(python画雷达图)

时间:2023-12-21 10:48:46 阅读:318631 作者:ESIJ

本文目录一览:

用python将数据(实时变化)显示到雷达图上。

1、以固定点画多个圆

2、每个点的坐标必须预先知道(当然坐标一直在边,那么在每次坐标变化后,都要获取到最新的坐标值)

3、依据坐标值在图上画出圆点。

这只是思路,没有源代码,只能帮到此步

用python 的matplotlib画雷达图的例子

我博客里回答你的问题

先看看效果图

【代码】

'''

matplotlib雷达图

'''

import numpy as np

import matplotlib.pyplot as plt

#=======自己设置开始============

#标签

labels = np.array(['艺术A','调研I','实际R','常规C','企业E','社会S'])

#数据个数

dataLenth = 6

#数据

data = np.array([1,4,3,6,4,8])

#========自己设置结束============

angles = np.linspace(0, 2*np.pi, dataLenth, endpoint=False)

data = np.concatenate((data, [data[0]])) # 闭合

angles = np.concatenate((angles, [angles[0]])) # 闭合

fig = plt.figure()

ax = fig.add_subplot(111, polar=True)

ax.plot(angles, data, 'bo-', linewidth=2)

ax.set_thetagrids(angles * 180/np.pi, labels, fontproperties="SimHei")

ax.set_title("matplotlib雷达图", va='bottom', fontproperties="SimHei")

ax.grid(True)

plt.show()

Python matplotlib用绘制雷达图实战案例

import pandasas pd

import matplotlib.pyplotas plt

import numpyas np

plt.rcParams['font.sans-serif'] = ['Microsoft YaHei']

plt.rcParams['axes.unicode_minus'] =False

data = pd.read_csv(r'D:bigDataradarMap.csv')

data = data.dropna(axis=1)

data = data.set_index('性能评价指标')

data = data.T

data.index.name ='品牌'

def plot_radar(data, feature):

columns = ['动力性', '燃油经济性', '制动性', '操控稳定性', '行驶平顺性', '通过性', '安全性', '环保性', '方便性', '舒适性', '经济性', '容量性']

colors = ['r', 'g', 'y']

# 设置雷达图的角度,用于平分切开一个平面

    # linspace(1,10,x) 创建1-10的等差数组,个数为 x,默认50个;endpoint参数指定是否包含终值,默认值为True,即包含终值。

    angles = np.linspace(0.1 * np.pi, 2.1 * np.pi, len(columns), endpoint=False)

# 使雷达图封闭起来

    angles = np.concatenate((angles, [angles[0]]))

# figsize:指定figure的宽和高,单位为英寸;

    figure = plt.figure(figsize=(6, 6))

# 设置为极坐标格式;subplot(nrows,ncols,sharex,sharey,subplot_kw,**fig_kw)创建单个子图,下面两句效果相同

    ax = figure.add_subplot(111, polar=True)

for i, cin enumerate(feature):

stats = data.loc[c]

stats = np.concatenate((stats, [stats[0]]))

ax.plot(angles, stats, '-', linewidth=2, c=colors[i], label=str(c))

ax.fill(angles, stats, color=colors[i], alpha=0.75)

# bbox_to_anchor这个参数,可以把图例放在图外面

    # bbox_to_anchor:表示legend的位置,前一个表示左右,后一个表示上下。

    # 当使用这个参数时。loc将不再起正常的作用,ncol=3表示图例三列显示。

    ax.legend(loc=4, bbox_to_anchor=(1.15, -0.07))

# 设置极轴范围

    ax.set_ylim(0, 10)

# ax.set_yticklabels([2, 4, 6, 8, 10])

    # 添加每个特质的标签

    columns = np.concatenate((columns, [columns[0]]))

ax.set_thetagrids(angles *180 / np.pi, columns, fontsize=12)

# 添加标题

    plt.title('汽车性能指标雷达图')

plt.show()

return figure

figure = plot_radar(data, ['A品牌', 'B品牌', 'C品牌'])

python可视化神器——pyecharts库

无意中从今日头条中看到的一篇文章,可以生成简单的图表。据说一些大数据开发们也是经常用类似的图表库,毕竟有现成的,改造下就行,谁会去自己造轮子呢。

pyecharts是什么?

pyecharts 是一个用于生成 Echarts 图表的类库。Echarts 是百度开源的一个数据可视化 JS 库。用 Echarts 生成的图可视化效果非常棒, pyecharts 是为了与 Python 进行对接,方便在 Python 中直接使用数据生成图 。使用pyecharts可以生成独立的网页,也可以在flask、django中集成使用。

安装很简单:pip install pyecharts

如需使用 Jupyter Notebook 来展示图表,只需要调用自身实例即可,同时兼容 Python2 和 Python3 的 Jupyter Notebook 环境。所有图表均可正常显示,与浏览器一致的交互体验,简直不要太强大。

参考自pyecharts官方文档:

首先开始来绘制你的第一个图表

使用 Jupyter Notebook 来展示图表,只需要调用自身实例即可

add() 主要方法,用于添加图表的数据和设置各种配置项

render() 默认将会在根目录下生成一个 render.html 的文件,文件用浏览器打开。

使用主题

自 0.5.2+ 起,pyecharts 支持更换主体色系

使用 pyecharts-snapshot 插件

如果想直接将图片保存为 png, pdf, gif 格式的文件,可以使用 pyecharts-snapshot。使用该插件请确保你的系统上已经安装了 Nodejs 环境。

安装 phantomjs $ npm install -g phantomjs-prebuilt

安装 pyecharts-snapshot $ pip install pyecharts-snapshot

调用 render 方法 bar.render(path='snapshot.png') 文件结尾可以为 svg/jpeg/png/pdf/gif。请注意,svg 文件需要你在初始化 bar 的时候设置 renderer='svg'。

图形绘制过程

基本上所有的图表类型都是这样绘制的:

chart_name = Type() 初始化具体类型图表。

add() 添加数据及配置项。

render() 生成本地文件(html/svg/jpeg/png/pdf/gif)。

add() 数据一般为两个列表(长度一致)。如果你的数据是字典或者是带元组的字典。可利用 cast() 方法转换。

多次显示图表

从 v0.4.0+ 开始,pyecharts 重构了渲染的内部逻辑,改善效率。推荐使用以下方式显示多个图表。如果使是 Numpy 或者 Pandas,可以参考这个示例

当然你也可以采用更加酷炫的方式,使用 Jupyter Notebook 来展示图表,matplotlib 有的,pyecharts 也会有的

Note: 从 v0.1.9.2 版本开始,废弃 render_notebook() 方法,现已采用更加  pythonic  的做法。直接调用本身实例就可以了。

比如这样

还有这样

如果使用的是自定义类,直接调用自定义类示例即可

图表配置

图形初始化

通用配置项

xyAxis:平面直角坐标系中的 x、y 轴。(Line、Bar、Scatter、EffectScatter、Kline)

dataZoom:dataZoom 组件 用于区域缩放,从而能自由关注细节的数据信息,或者概览数据整体,或者去除离群点的影响。(Line、Bar、Scatter、EffectScatter、Kline、Boxplot)

legend:图例组件。图例组件展现了不同系列的标记(symbol),颜色和名字。可以通过点击图例控制哪些系列不显示。

label:图形上的文本标签,可用于说明图形的一些数据信息,比如值,名称等。

lineStyle:带线图形的线的风格选项(Line、Polar、Radar、Graph、Parallel)

grid3D:3D笛卡尔坐标系组配置项,适用于 3D 图形。(Bar3D, Line3D, Scatter3D)

axis3D:3D 笛卡尔坐标系 X,Y,Z 轴配置项,适用于 3D 图形。(Bar3D, Line3D, Scatter3D)

visualMap:是视觉映射组件,用于进行『视觉编码』,也就是将数据映射到视觉元素(视觉通道)

markLinemarkPoint:图形标记组件,用于标记指定的特殊数据,有标记线和标记点两种。(Bar、Line、Kline)

tooltip:提示框组件,用于移动或点击鼠标时弹出数据内容

toolbox:右侧实用工具箱

图表详细

Bar(柱状图/条形图)

Bar3D(3D 柱状图)

Boxplot(箱形图)

EffectScatter(带有涟漪特效动画的散点图)

Funnel(漏斗图)

Gauge(仪表盘)

Geo(地理坐标系)

GeoLines(地理坐标系线图)

Graph(关系图)

HeatMap(热力图)

Kline/Candlestick(K线图)

Line(折线/面积图)

Line3D(3D 折线图)

Liquid(水球图)

Map(地图)

Parallel(平行坐标系)

Pie(饼图)

Polar(极坐标系)

Radar(雷达图)

Sankey(桑基图)

Scatter(散点图)

Scatter3D(3D 散点图)

ThemeRiver(主题河流图)

TreeMap(矩形树图)

WordCloud(词云图)

用户自定义

Grid 类:并行显示多张图

Overlap 类:结合不同类型图表叠加画在同张图上

Page 类:同一网页按顺序展示多图

Timeline 类:提供时间线轮播多张图

统一风格

注:pyecharts v0.3.2以后,pyecharts 将不再自带地图 js 文件。如用户需要用到地图图表,可自行安装对应的地图文件包。

地图文件被分成了三个 Python 包,分别为:

全球国家地图:

echarts-countries-pypkg

中国省级地图:

echarts-china-provinces-pypkg

中国市级地图:

echarts-china-cities-pypkg

直接使用python的pip安装

但是这里大家一定要注意,安装完地图包以后一定要重启jupyter notebook,不然是无法显示地图的。

显示如下:

总得来说,这是一个非常强大的可视化库,既可以集成在flask、Django开发中,也可以在做数据分析的时候单独使用,实在是居家旅行的必备神器啊

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。