根据需求使用matplotlib 优化可视化图表

目录

需求:

导入所需库

准备数据

绘制折线

图表辅助元素定制(图表标题,刻度标签,图例,网格,指向型注释文本)

图表样式美化(填充颜色)

显示图形

总代码:


需求:

绘制一个包含正弦曲线和余弦曲线的图表,具体要求如下:

(1)    正弦曲线的样式:红色、线宽为1.0;

(2)    余弦曲线的样式:蓝色、线宽为1.0,透明度为0.5;

(3)    x轴的刻度标签为“-π”、 “-π/2”、 “0”、 “π/2”、 “-π”;

(4)    在x=1、y=np.cos(1)的位置添加指向型注释文本;

(5)    为正弦曲线和余弦曲线封闭起来的区域填充绿色,透明度为0.25.

最终的效果见运行结果图示。

实现过程:

导入所需库

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_sin, color='red', linewidth=1.0)
plt.plot(x, y_cos, color='blue', linewidth=1.0, alpha=0.5)

plt.plot 函数绘制折线图,color 参数用于设置颜色,linewidth 用于设置线宽,alpha 用于设置透明度。

图表辅助元素定制(图表标题,刻度标签,图例,网格,指向型注释文本)

plt.title('正弦曲线和余弦曲线')
plt.xticks([-np.pi, -np.pi/2, 0, np.pi/2, np.pi],
           [r'$-\pi$', r'$-\pi/2$', r'$0$', r'$+\pi/2$', r'$+\pi$'])
plt.yticks([-1, 0, +1])

plt.annotate('cos(1)', xy=(1, np.cos(1)), xycoords='data',
             xytext=(-50, -50), textcoords='offset points',
             arrowprops=dict(arrowstyle='->', connectionstyle='arc3,rad=.2'))

plt.legend(['sin', 'cos'])

plt.grid(True)

plt.xticksplt.yticks 用于设置坐标轴上的刻度标签,r'$+\pi$' 用于生成带有数学符号的字符串。

plt.annotate 用于添加指向型注释文本,xy 表示注释文本的位置,xytext 表示文本偏移的位置,arrowprops 用于指定箭头的样式。

plt.legend 用于添加图例,plt.grid 用于显示网格线。

plt.fill_between 用于填充两条曲线之间的区域,where 参数指定在哪些点填充区域,interpolate 参数表示使用插值方法来填充区域,coloralpha 参数分别用于设置填充颜色和透明度。

图表样式美化(填充颜色)

plt.fill_between(x, y_cos, y_sin, where=(y_cos > y_sin),
                 interpolate=True, color='green', alpha=0.25)

显示图形

plt.show()

plt.xticksplt.yticks 用于设置坐标轴上的刻度标签,r'$+\pi$' 用于生成带有数学符

总代码:

# 1.导入所需库
import numpy as np
import matplotlib.pyplot as plt

# 2.准备数据
x = np.linspace(-np.pi, np.pi, 256, endpoint=True)
y_cos, y_sin = np.cos(x), np.sin(x)

# 3.绘制折线
plt.plot(x, y_sin, color='red', linewidth=1.0)
plt.plot(x, y_cos, color='blue', linewidth=1.0, alpha=0.5)

# 4.图表辅助元素定制(图表标题,刻度标签,图例,网格,指向型注释文本)
plt.title('正弦曲线和余弦曲线')
plt.xticks([-np.pi, -np.pi/2, 0, np.pi/2, np.pi],
           [r'$-\pi$', r'$-\pi/2$', r'$0$', r'$+\pi/2$', r'$+\pi$'])
plt.yticks([-1, 0, +1])

plt.annotate('cos(1)', xy=(1, np.cos(1)), xycoords='data',
             xytext=(-50, -50), textcoords='offset points',
             arrowprops=dict(arrowstyle='->', connectionstyle='arc3,rad=.2'))

plt.legend(['sin', 'cos'])

plt.grid(True)

# 5.图表样式美化(填充颜色)
plt.fill_between(x, y_cos, y_sin, where=(y_cos > y_sin),
                 interpolate=True, color='green', alpha=0.25)
# 6.显示图形
plt.show()

输出如下:

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值