python数据可视化图像表示

安装

写这篇文章用的是Win环境,首先打开命令行(win+R),输入:

pip install pyecharts

但笔者实测时发现,由于墙的原因,下载时会出现断线和速度过慢的问题导致下载失败,所以建议通过清华镜像来进行下载:

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pyecharts

使用实例

使用之前我们要强调一点:就是python2.x和python3.x的编码问题,在python3.x中你可以把它看做默认是unicode编码,但在python2.x中并不是默认的,原因就在它的bytes对象定义的混乱,而pycharts是使用unicode编码来处理字符串和文件的,所以当你使用的是python2.x时,请务必在上方插入此代码:

from future import unicode_literals

(1)反应业务趋势折线图

import numpy as np
import matplotlib.style as ms
import matplotlib.pyplot as plt
plt.rcParams["font.sans-serif"] = ["SimHei"]
plt.rcParams["axes.unicode_minus"] = False
# 快递业务量
express_2018 = np.array([39, 20, 40, 38, 42, 43, 41, 41, 45, 48, 52, 50])
express_2019 = np.array([45, 28, 48, 49, 50, 51, 50, 50, 51, 52, 70, 65])
date_x = np.arange(1, 13)
fig = plt.figure()
ax = fig.add_subplot(111)

# 2018年折线颜色为“#8B0000”,正三角形
ax.plot(date_x, express_2018, color='#8B0000', marker='^',
linestyle='--', linewidth=1.5, label='2018年')
# 2019年折线颜色为“#006374”,长菱形
ax.plot(date_x, express_2019, color='#006374', marker='d',
linewidth=1.5, label='2019年')
ax.set_ylabel('业务量(亿件)')
ax.legend()
#主题风格
ms.use('fivethirtyeight')
plt.show()

在这里插入图片描述

(2)正弦曲线和余弦曲线的图表

import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(-np.pi, np.pi, 256, endpoint=True)
y_cos, y_sin = np.cos(x), np.sin(x)
#正弦曲线
plt.plot(x, y_cos, color='blue', linewidth=1.0, label='COS', alpha=0.5)
#余弦曲线
plt.plot(x, y_sin, color='red', linewidth=1.0, label='SIN')
plt.title('Cos & Sin')
plt.xticks([-np.pi, -np.pi / 2.0, 0, np.pi / 2.0, np.pi],
[r'$-\pi$', r'$-\pi/2$', r'$0$', r'$\pi/2$', r'$\pi$'])
plt.yticks(np.linspace(-1, 1, 5, endpoint=True))

#设置图例位置
plt.legend(loc='upper left')
#设置网格线
plt.grid()
# 填充绿色区域
plt.fill_between(x, np.abs(x) < 0.5, y_cos, y_cos > 0.5,
color='green', alpha=0.25)
# 加注释文本(x=1、y=np.cos(1))
plt.annotate('cos(1)', xy=(1, np.cos(1)), xycoords='data', xytext=(10, 30),
             textcoords='offset points', arrowprops=dict(arrowstyle='->'))
plt.show()

在这里插入图片描述

(3)对猫的种类进行分析

vords = [(i,1) for i in cat_info['品种'].unique()]
c = (
    WordCloud(init_opts=opts.InitOpts(theme=ThemeType.LIGHT))
    .add("",vords,shape=SymbolType.DIAMOND)
    .set_global_opts(title_opts=opts.TitleOpts(title=""))
)
c.render_notebook()

在这里插入图片描述

(4)对猫的的地区进行显示

cat_info['地区'] = cat_info['地区'].astype(str)
cat_info['province'] = cat_info['地区'].map(lambda s: s.split('/')[0])
pv = cat_info['province'].value_counts().reset_index()
c = (
    Map(init_opts=opts.InitOpts(theme=ThemeType.LIGHT))
    .add("",[list(z) for z in zip (list(pv['index']),list(pv['province']))],"china")
    .set_global_opts(
        title_opts=opts.TitleOpts(title="猫猫售卖省分布"),
        visualmap_opts=opts.VisualMapOpts(max_=16500, is_inverse=True),
    )
)c.render_notebook()

在这里插入图片描述

(5)交易品种占比树状图

from pyecharts import options as opts
from pyecharts.charts import TreeMap
pingzhong = cat_info['品种'].value_counts().reset_index()
data = [{'value':i[1],'name':i[0]} for i in zip(list(pingzhong['index']),list(pingzhong['品种']))]
c = (
    TreeMap(init_opts=opts.InitOpts(theme=ThemeType.LIGHT))
    .add("",data)
    .set_global_opts(title_opts=opts.TitleOpts(title=""))
    .set_series_opts(label_opts=opts.LabelOpts(position="inside"))
)
c.render_notebook()

在这里插入图片描述

(6)对猫不同种类的销售进行显示

c = (
    PictorialBar(init_opts=opts.InitOpts(theme=ThemeType.LIGHT))
    .add_xaxis(location)
    .add_yaxis(
        "",
        values,
        label_opts=opts.LabelOpts(is_show=False),
        symbol_size=18,
        symbol_repeat="fixed",
        symbol_offset=[0, 0],
        is_symbol_clip=True,
        symbol=SymbolType.ROUND_RECT,
    )
    .reversal_axis()
    .set_global_opts(
        title_opts=opts.TitleOpts(title='均价排名'),
        xaxis_opts=opts.AxisOpts(is_show=False),
        yaxis_opts=opts.AxisOpts(
            axistick_opts=opts.AxisTickOpts(is_show=False),
            axisline_opts=opts.AxisLineOpts(
                linestyle_opts=opts.LineStyleOpts(opacity=0),
            ),
        ),
    )
    .set_global_opts(
        opts.LabelOpts(position='insideRight')
    )
)
c.render_notebook()

在这里插入图片描述

(7)年龄分布图(对猫的销售年龄进行显示)

cat_info['年龄'] = cat_info['年龄'].astype(str)
age = cat_info['年龄'].map(lambda x: x.replace('个月','')).reset_index()
def ages(s):
    if s == 'nan':
        return s
    s = int(s)
    if 1 <= s <3:
        return '1-3个月'
    if 3 <= s <6:
        return '3-6个月'
    if 6 <= s <9:
        return '6-9个月'
    if 9 <= s <12:
        return '9-12个月'
    if s >=12:
        return '1年以上'
age['age'] = age['年龄'].map(ages)
age = age['age'].value_counts().reset_index()
age = age[age['index']!='nan']
age

在这里插入图片描述

(8)对猫的年龄分布进行显示

x = ['1-3个月','3-6个月','6-9个月','9-12个月','1年以上']
y = [69343,115288,18239,4139,5]
c = (
    Bar(init_opts=opts.InitOpts(theme=ThemeType.LIGHT))
    .add_xaxis(x)
    .add_yaxis('',y)
    .set_global_opts(title_opts=opts.TitleOpts(title="猫年龄分布"))
)
c.render_notebook()

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

kui954

感谢各位的支持o(* ̄3 ̄)o

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值