Заимствовать код непосредственно из этих двух сайтов:
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
import numpy as np
from scipy.stats import skewnorm
fig = plt.figure(figsize=(15,15))
ax = fig.add_subplot(111, projection='3d')
#generate data from skewnorm dist
x,y = skewnorm.rvs(.2, size=1000),skewnorm.rvs(.2, size=1000)
hist, xedges, yedges = np.histogram2d(x, y, bins=4, range=[[0, 4], [0, 4]])
xpos, ypos = np.meshgrid(xedges[:-1] + 0.25, yedges[:-1] + 0.25)
xpos = xpos.flatten('F')
ypos = ypos.flatten('F')
zpos = np.zeros_like(xpos)
dx = 0.5 * np.ones_like(zpos)
dy = dx.copy()
dz = hist.flatten()
ax.bar3d(xpos, ypos, zpos, dx, dy, dz, color='b', zsort='average')
plt.show()
Это оператор форматирования строки. Прочтите о форматировании строки в Python .
format % values
Создает строку, в которой формат
задает формат, а значения
являются значениями для заполнения.
Он применяет printf-подобное форматирование к строке, так что вы можете заменить определенные части строки значениями переменных. Пример
# assuming numFiles is an int variable
print "Found %d files" % (numFiles, )
См. Ссылку, предоставленную Конрадом
Обратите внимание, что начиная с Python 2.6, рекомендуется использовать новый метод str.format()
:
>>> "The sum of 1 + 2 is {0}".format(1+2)
'The sum of 1 + 2 is 3'
Если вы используете 2.6, вы можете продолжать использовать %
, чтобы оставаться совместимым со старыми версиями, но в Python 3 нет причин не использовать str.format()
.
Оператор '%' используется для интерполяции строк. Начиная с Python 2.6, используется строковый "формат". Подробнее см. http://www.python.org/dev/peps/pep-3101/