第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會有你想問的

如何創(chuàng)建基于 y 值的梯度階梯圖?

如何創(chuàng)建基于 y 值的梯度階梯圖?

翻過高山走不出你 2023-09-05 17:16:21
在 Python matplotlib 中,如何獲得折線圖或階梯圖中的線以顯示基于 y 值的梯度?示例圖(在 Tableau 中制作):帶有根據(jù) x 值改變梯度的線的階梯圖代碼,改編自此答案:fig, ax = plt.subplots(figsize=(10, 4))x = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]y = [2, 3, 9, 10, 2, 9, 0, 1, 9, 1, -8]T = np.linspace(0,1,np.size(x))**2s = 1for i in range(0, len(x)-s, s):    ax.step(x[i:i+s+1], y[i:i+s+1],  marker='.', color=(0.0,0.5,T[i]))ax.tick_params(axis='both', colors='lightgray', labelsize=8)
查看完整描述

1 回答

?
慕沐林林

TA貢獻(xiàn)2016條經(jīng)驗(yàn) 獲得超9個(gè)贊

以下代碼的靈感來自matplotlib 文檔中的多色線示例。首先,使用 y 值繪制水平線段并為其著色。垂直部分被細(xì)分為小塊,并單獨(dú)著色。

vmin標(biāo)準(zhǔn)的值設(shè)置得低一些,以避免顏色圖的范圍太亮。

import matplotlib.pyplot as plt

from matplotlib.collections import LineCollection

import numpy as np


x = np.arange(50)

y = np.random.randint(-3, 4, x.size).cumsum()


fig, ax = plt.subplots()


norm = plt.Normalize(y.min() - y.ptp() * .2, y.max())

cmap = 'inferno_r'? # 'Reds'

horizontal_lines = np.array([x[:-1], y[:-1], x[1:], y[:-1]]).T.reshape(-1, 2, 2)

hor_lc = LineCollection(horizontal_lines, cmap=cmap, norm=norm)

hor_lc.set_array(y[:-1])

ax.add_collection(hor_lc)


factor = 10

long_y0 = np.linspace(y[:-1], y[1:], factor)[:-1, :].T.ravel()

long_y1 = np.linspace(y[:-1], y[1:], factor)[1:, :].T.ravel()

long_x = np.repeat(x[1:], factor - 1)

vertical_lines = np.array([long_x, long_y0, long_x, long_y1]).T.reshape(-1, 2, 2)

ver_lc = LineCollection(vertical_lines, cmap=cmap, norm=norm)

ver_lc.set_array((long_y0 + long_y1) / 2)

ax.add_collection(ver_lc)


ax.scatter(x, y, c=y, cmap=cmap, norm=norm)

plt.autoscale() # needed in case the scatter plot would be omited

plt.show()

https://img4.sycdn.imooc.com/64f6f2330001381b12650398.jpg

這是另一個(gè)示例,具有黑色背景。在這種情況下,避免了顏色圖的最暗部分。更改的代碼部分是:


y = np.random.randint(-9, 10, x.size)


ax.patch.set_color('black')


norm = plt.Normalize(y.min(), y.max() + y.ptp() * .2)

cmap = 'plasma_r'

https://img3.sycdn.imooc.com/64f6f2430001d3af06520263.jpg

這是一個(gè)帶有 a 和藍(lán)-白-紅顏色圖的示例TwoSlopeNorm:


from matplotlib.colors import TwoSlopeNorm


y = np.random.uniform(-1, 1, x.size * 10).cumsum()[::10]

y = (y - y.min()) / y.ptp() * 15 - 5


norm = TwoSlopeNorm(vmin=-5, vcenter=0, vmax=10)

cmap = 'bwr'

https://img3.sycdn.imooc.com/64f6f24e0001e74c06530265.jpg

查看完整回答
反對 回復(fù) 2023-09-05
  • 1 回答
  • 0 關(guān)注
  • 118 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號