Как изменить ширину линии при нанесении на сферу Блоха - PullRequest
0 голосов
/ 31 декабря 2018

Я использую QuTiP для построения сферы Блоха в Python.Если у меня есть несколько точек на сфере Блоха, то я могу соединить их линией, используя команду

b.add_points(pnts,meth='l')|

. Я хотел бы узнать, как изменить ширину линии, соединяющей эти точки.

1 Ответ

0 голосов
/ 19 января 2019

Прямого способа сделать это нет, так как по умолчанию при создании графика не передается параметр linewidth, но вы всегда можете построить линии вручную.Точки должны быть переданы в виде списка numpy.ndarray объектов.

Единственный улов - чтобы соответствовать тому, что делает класс Bloch, вам необходимо убедиться, что соглашение, которое вы используетеопределить точки это то же самое.Похоже, что метод l построит соединение только первых трех точек, которые вы вводите.

Следующий скрипт воспроизводит это поведение, используя функцию, аналогичную той, которая определена в Bloch:

import matplotlib.pyplot as plt
import qutip
import numpy as np
from mpl_toolkits.mplot3d import Axes3D

pts = [np.array([[0, 1, 0], [0, 0, 1], [1, 0, 0]])]

fig, ax = plt.subplots(figsize=(5, 5), subplot_kw=dict(projection='3d'))
ax.axis('square') 

b = qutip.Bloch(fig=fig, axes=ax)

for p in pts:    
    b.axes.plot(p[1], -p[0], p[2],
                alpha=1, zdir='z', color='r', 
                linewidth=5) 

b.render(fig=fig, axes=ax)
plt.show()

Здесь выводится цифра:

enter image description here

...