python(数据分析)第3天:坐标轴显示中文,旋转

9如果列表a表示10点到12点的每一分钟的气温,如何绘制折线图:

import random
from matplotlib import pyplot as plt  # 导入pyplot

x = range(0,120)
y = [random.randint(20,35) for i in range(120)]
# figsize可以设置图像的长宽比例,dpi设置值越大图像越大,反之越小,也不会失真
plt.figure(figsize=(20,10),dpi=50)
# 绘图
plt.plot(x, y)
# 展示图形
plt.show()

在这里插入图片描述
2.调整X或者Y轴上的刻度

_x_ticks = [“10点{}分”,format(i) for i in x if i<60]
_x_ticks += [“11点{}分”,format(i-60) for i in x if i>60]

3.plt.xticks(x[::5],_x_ticks[::5],rotation=90)
–>让列表x中的数据和_x_ticks上的数据都传入,最终会显示在x轴—对应的显示出来;
–>两组数据的长度必须保持一致,否则不能把完全覆盖整个轴;
–>使用列表的切片,每隔5个选一个数据进行展示;
–>为了让字符串不会覆盖,使用rotation选项,让字符串旋转90°。

import matplotlib.pyplot as plt
import random
import matplotlib
from matplotlib import cycler

# 设置线条,支持中文
font = {'family': 'MicroSoft YaHei',
        'weight': 'bold'}
# 设置颜色红色
sample_cycler = (cycler(color=['r']) + cycler(lw=[1]))

plt.rc("font", **font)
# plt.rc('lines', linewidth=1)
plt.rc('axes', prop_cycle=sample_cycler)
# 图片长宽比例
plt.figure(figsize=(20, 8))

x = range(120)
# 在20-35之间找120个随机数
y = [random.uniform(20, 35) for i in range(120)]

plt.plot(x, y)

# 调整x轴上的字符串刻度
_x_ticks = ["10点{}分".format(i) for i in x if i < 60]
_x_ticks += ["11点{}分".format(i - 60) for i in x if i > 60]
# 取步长,数字和字符串一一对应,数据长度一样,字体旋转45°
plt.xticks(x[::5], _x_ticks[::5], rotation=45)

plt.show()

在这里插入图片描述

增加描述

import matplotlib.pyplot as plt
import random
import matplotlib
from matplotlib import cycler
from matplotlib.font_manager import FontProperties

# 支持的中文字体
font1 = FontProperties(fname=r"c:\windows\fonts\simsun.ttc")
# font2 = FontProperties(fname=r"c:\windows\fonts\STHUPO.TTF")
# font3 = FontProperties(fname=r"c:\windows\fonts\STCAIYUN.TTF")

# 设置线条,支持中文
font = {'weight': 'bold'}
# 设置颜色红色
sample_cycler = (cycler(color=['r']) + cycler(lw=[1]))

plt.rc("font", **font)
# plt.rc('lines', linewidth=1)
plt.rc('axes', prop_cycle=sample_cycler)

# 图片长宽比例
plt.figure(figsize=(20, 8))

x = range(120)
# 在20-35之间找120个随机数
y = [random.uniform(20, 35) for i in range(120)]

plt.plot(x, y)

# 调整x轴上的字符串刻度
_x_ticks = ["10点{}分".format(i) for i in x if i < 60]
_x_ticks += ["11点{}分".format(i - 60) for i in x if i > 60]
# 取步长,数字和字符串一一对应,数据长度一样,字体旋转45°
plt.xticks(x[::5], _x_ticks[::5], rotation=45, fontproperties=font1)

#添加描述信息
plt.xlabel("时间",fontproperties=font1)
plt.ylabel("温度",fontproperties=font1)
plt.title("温度变化",fontproperties=font1)

plt.show()

在这里插入图片描述

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

<( ̄︶ ̄)Okay.

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值