Python可视化答疑

一个Python可视化需要答疑。

这个是绘制每日美国金牌总数的折线图。但是y轴信息显示不出来,不知道什么原因。P1是代码,P2是itemtoges.xlsx文件,P3是我的结果,P4是我想要做成的样式。 ​​

img

img

img

img

import pandas as pd
from pyecharts.charts import Line
from pyecharts import options as opts
import matplotlib.pyplot as plt
from datetime import datetime

data = pd.read_excel('itemtoge.xlsx')

# 筛选美国金牌、银牌、铜牌数据
usa_gold = data[(data['名次'] == 1)&(data['国家'] == '美国')]
usa_silver = data[(data['名次'] == 2)&(data['国家'] == '美国')]
usa_bronze = data[(data['名次'] == 3)&(data['国家'] == '美国')]
#print(usa_gold)

plt.rcParams['font.sans-serif'] = ['SimHei']  # 用来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False  # 用来正常显示负号

# 获得金牌日期列表
date_str = list(set(usa_gold['日期']))
result_list = sorted(date_str, key=lambda x: datetime.strptime(x, "%Y/%m/%d"))
print(result_list)

#日期所对应的累加的银牌
def count_num(usa_three):
    group = usa_three.groupby('日期')  # 按日期分组
    s = group.size()  # 统计每天的奖牌个数
    #print(s)
    #print(len(s))
    sum = 0
    y = []
    # 统计每一天的奖牌总量
    for n in range(len(s)):
        sum = s[n] + sum
        y.append(sum)
    return y
# 日期所对应的累加的金牌、银牌、铜牌
data_gold = count_num(usa_gold)
data_silver = count_num(usa_silver)
data_bronze = count_num(usa_bronze)
print(data_gold)

'''
3. Pyecharts数据可视化
'''
# 3.1 绘制基础折线图
line = (
    Line()
    .add_xaxis(result_list)
    # 美国线条
    .add_yaxis(
        '美国', data_gold,
        label_opts=opts.LabelOpts(is_show=True))
    .set_global_opts(
        title_opts=opts.TitleOpts(
            title='美国金牌',
            pos_left='center',
        ),
        yaxis_opts=opts.AxisOpts(
            name='金牌/枚',
            is_scale=True,
            max_=40),
        legend_opts=opts.LegendOpts(is_show=False),
    ))
line.render("1基础折线图.html")

data = pd.read_excel('itemtoge.xlsx')
Excel 也附上

可能是因为数据范围太小,y轴的最大值设置为40,但是数据的最大值没有达到40,导致y轴信息显示不出来。可以尝试将y轴最大值设置为数据的最大值或者更小的值。另外,也可以尝试调整y轴的其他参数,比如刻度间隔等。