我是靠谱客的博主 怕孤单斑马,最近开发中收集的这篇文章主要介绍小马良看了直呼“专业”,持续学习matplotlib中···day3第三天 加油,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

第三天 加油

1. Errorbar Subsample 误差条子样本

显示带有少量错误条的全精度数据图

import numpy as np
import matplotlib.pyplot as plt

x = np.arange(0.1, 4, 0.1)
y1 = np.exp(-1.0 * x)       # 计算指数
y2 = np.exp(-0.5 * x)

y1err = 0.1 + 0.1 * np.sqrt(x)    # 计算平方根
y2err = 0.1 + 0.1 * np.sqrt(x/2)

fig, (ax_l, ax_c, ax_r) = plt.subplots(nrows=1, ncols=3, sharey='none', figsize=(12, 6))

ax_l.set_title('all errorbars')
ax_l.errorbar(x, y1, yerr=y1err)
ax_l.errorbar(x, y2, yerr=y2err)

ax_c.set_title('only every 6th errorbar')
ax_c.errorbar(x, y1, yerr=y1err, errorevery=6)
ax_c.errorbar(x, y2, yerr=y2err, errorevery=6)

ax_r.set_title('second series shifted by 3')
ax_r.errorbar(x, y1, yerr=y1err, errorevery=(0, 6))
ax_r.errorbar(x, y2, yerr=y2err, errorevery=(3, 6))

fig.suptitle('Errorbar subsampling for better appearance')
plt.show()

2. EventCollection Demo

将样点的x,y坐标在x,y轴上标记出来

import matplotlib.pyplot as plt
from matplotlib.collections import EventCollection
import numpy as np

np.random.seed(19680801)

xdata = np.random.random([2, 10])

xdata1 = xdata[0, :]  # 切片
xdata2 = xdata[1, :]

xdata1.sort()       # 排序
xdata2.sort()

ydata1 = xdata1 ** 2
ydata2 = 1 - xdata2 ** 3

fig = plt.figure()
ax = fig.add_subplot(1, 1, 1)
ax.plot(xdata1, ydata1, color='tab:blue')
ax.plot(xdata2, ydata2, color='tab:orange')

xevents1 = EventCollection(xdata1, color='tab:blue', linelength=0.05)
xevents2 = EventCollection(xdata2, color='tab:orange', linelength=0.05)

yevents1 = EventCollection(ydata1, color='tab:blue', linelength=0.05, orientation='vertical')  # orientation方向
yevents2 = EventCollection(ydata2, color='tab:orange', linelength=0.05, orientation='vertical')

ax.add_collection(xevents1)
ax.add_collection(xevents2)
ax.add_collection(yevents1)
ax.add_collection(yevents2)

ax.set_xlim([0, 1])
ax.set_ylim([0, 1])

ax.set_title('line plot with data points')

plt.show()

3. Eventplot Demo

import matplotlib.pyplot as plt
import numpy as np
import matplotlib
matplotlib.rcParams['font.size'] = 8.0

np.random.seed(19680801)

data1 = np.random.random([6, 50])

colors1 = ['C{}'.format(i) for i in range(6)]

lineoffsets1 = np.array([-15, -3, 1, 1.5, 6, 10])
linelengths1 = [5, 2, 1, 1, 3, 1.5]

fig, axs = plt.subplots(2, 2)

axs[0, 0].eventplot(data1, colors=colors1, lineoffsets=lineoffsets1, linelengths=linelengths1)

axs[1, 0].eventplot(data1, colors=colors1, lineoffsets=lineoffsets1, linelengths=linelengths1, orientation='vertical')

data2 = np.random.gamma(4, size=[60, 50])

colors2 = 'black'
lineoffsets2 = 1
linelengths2 = 1

axs[0, 1].eventplot(data2, colors=colors2, lineoffsets=lineoffsets2, linelengths=linelengths2)

axs[1, 1].eventplot(data2, colors=colors2, lineoffsets=lineoffsets2, linelengths=linelengths2, orientation='vertical')

plt.show()

4. Filled polygon 填充多边形

import numpy as np
import matplotlib.pyplot as plt


def koch_snowflake(order, scale=10):
    """
    Return two lists x, y of point coordinates of the Koch snowflake.

    Arguments
    ---------
    order : int
        The recursion depth.
    scale : float
        The extent of the snowflake (edge length of the base triangle).
    """
    def _koch_snowflake_complex(order):
        if order == 0:
            angles = np.array([0, 120, 240]) + 90
            return scale / np.sqrt(3) * np.exp(np.deg2rad(angles) * 1j)
        else:
            ZR = 0.5 - 0.5j * np.sqrt(3) / 3

            p1 = _koch_snowflake_complex(order - 1)  # start points
            p2 = np.roll(p1, shift=-1)  # end points
            dp = p2 - p1  # connection vectors

            new_points = np.empty(len(p1) * 4, dtype=np.complex128)
            new_points[::4] = p1
            new_points[1::4] = p1 + dp / 3
            new_points[2::4] = p1 + dp * ZR
            new_points[3::4] = p1 + dp / 3 * 2
            return new_points

    points = _koch_snowflake_complex(order)
    x, y = points.real, points.imag
    return x, y


x, y = koch_snowflake(order=5)

plt.figure(figsize=(8, 8))
plt.axis('equal')
plt.fill(x, y)
plt.show()

最后

以上就是怕孤单斑马为你收集整理的小马良看了直呼“专业”,持续学习matplotlib中···day3第三天 加油的全部内容,希望文章能够帮你解决小马良看了直呼“专业”,持续学习matplotlib中···day3第三天 加油所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(48)

评论列表共有 0 条评论

立即
投稿
返回
顶部