matplotlib|Pyecharts画图练习

气温

解决中文无法正常显示

plt.rcParams['font.sans-serif'] = ['Microsoft YaHei']
plt.rcParams['font.serif'] = ['Microsoft YaHei']
plt.rcParams['axes.unicode_minus'] = False # 解决保存图像是负号'-'显示为方块的问题,或者转换负号为字符串

import matplotlib.pyplot as plt
import random
from matplotlib import font_manager
x=range(0,120)
y=[random.randint(20,35) for i in range(120)]
plt.figure(figsize=(20,8),dpi=80)
plt.rcParams['font.sans-serif'] = ['Microsoft YaHei']
plt.rcParams['font.serif'] = ['Microsoft YaHei']
plt.rcParams['axes.unicode_minus'] = False # 解决保存图像是负号'-'显示为方块的问题,或者转换负号为字符串
plt.plot(x,y)
_xtick_labels=["10点{}分".format(i) for i in range(60)]
_xtick_labels +=["11点{}分".format(i) for i in range(60)]
plt.xticks(list(x)[::3],_xtick_labels[::3],rotation=45)
plt.xlabel("时间")
plt.ylabel("温度 单位(摄氏度)")
plt.title("10点到12点每分钟的气温变化情况")
plt.grid(alpha=0.6)
plt.show()

折线图

import matplotlib.pyplot as plt
import random
from matplotlib import font_manager
my_font=font_manager.FontProperties(fname="/System/Library/Fonts/PingFang.ttc")
x=range(11,31)
y1=[1,0,1,1,2,4,3,2,3,4,4,5,6,5,4,3,3,1,1,1]
y2=[1,0,3,1,2,2,3,3,2,1,2,1,1,1,1,1,1,1,1,1]
plt.figure(figsize=(20,8),dpi=80)
plt.plot(x,y1,label="自己",linestyle='--',linewidth=2.8)
plt.plot(x,y2,label="同桌",color='r')
_xtick_labels=["{}岁".format(i) for i in x]
#_xtick_labels +=["11点{}分".format(i) for i in range(60)]
plt.xticks(x,_xtick_labels)
plt.xlabel("年龄")
plt.legend(loc="upper left",frameon=False)
ax = plt.gca()
ax.spines['top'].set_color('none')
ax.spines['right'].set_color('none')
plt.ylabel("数量  单位(个)")
plt.title("旅游城市数量记录",size=30,loc='left')
plt.grid(alpha=0.6)
plt.show()

 

影城票房数据

1.box_14:14日四部影片的票房

2.data.index = pd.Series(movie)重置索引

    

3.movie_avg:每部影城三天平均票房

4.x = [0.25,1.25,2.25,3.25] movie_avg数据标签横坐标

5.x_14/15/16三天每个柱子的横坐标

6.取消顶部右边边框

   ax = plt.gca()
   ax.spines['top'].set_color('none')
   ax.spines['right'].set_color('none')

7.数据标签plt.text(横坐标,纵坐标,保留票房两位小数)

for w,n in zip(x,movie_avg):
    plt.text(w-0.05,n,'%.2f'%n, ha='center', va='bottom',color='b')

import numpy as np
import pandas as pd
movie_name=["猩球崛起3:终极之战","敦刻尔克","蜘蛛侠:英雄归来","战狼2"]
data = pd.DataFrame({'box_14':[2358,399,2358,362],
                     'box_15':[12357,156,2045,168],
                     'box_16':[15746,312,4497,3319]
                    })
data.index=pd.Series(movie_name)
movie_avg = data.T.mean()
x = [0.25,1.25,2.25,3.25]
bar_width=0.2
x_14 = list(range(len(movie_name)))
x_15 = [i+bar_width for i in x_14]
x_16 = [i+bar_width*2 for i in x_14]
plt.figure(figsize=(20,8),dpi=80)
plt.bar(range(len(movie_name)),df['b_14'],width=bar_width,label="9月14日",color='#f2753f')
plt.bar(x_15,df['b_15'],width=bar_width,label="9月15日",color='#FFE957')
plt.bar(x_16,df['b_16'],width=bar_width,label="9月16日",color='#f29f3f')
plt.plot(x1,linewidth=2,label='平均票房',color='#34352c')
ax = plt.gca()
ax.spines['top'].set_color('none')
ax.spines['right'].set_color('none')
for w,n in zip(x,movie_avg):
    plt.text(w-0.05,n,'%.2f'%n, ha='center', va='bottom',color='b')
plt.legend()
plt.title("2018年9月某影城三日票房数据",size=30)
plt.xticks(x_15,movie_name,size=20)
plt.show()

Pyecharts画图

需要安装pyecharts包以及snapshot_selenium包

from pyecharts.charts import Bar
from pyecharts.render import make_snapshot
# 使用 snapshot-selenium 渲染图片
from snapshot_selenium import snapshot
%matplotlib inline
bar = (
    Bar()
    .add_xaxis(["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"])
    .add_yaxis("商家A", [5, 20, 36, 10, 75, 90])
)
bar.render_notebook()

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值