
import random
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
import matplotlib;matplotlib.use('tkagg')
plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus']=False
def get_random_data(num):
random_data = list()
for i in range(0, num):
random_data.append(random.randint(0, 100))
return random_data
def csdn_plot_3D_scatter():
"""
plot the 3D scatter picture.
"""
'''get data ready.'''
number_of_point = 100
x_data = range(0, number_of_point)
y_data_1 = get_random_data(number_of_point)
y_data_2 = get_random_data(number_of_point)
y_data_3 = get_random_data(number_of_point)
'''plot starting ... '''
fig = plt.figure()
plt.rcParams['savefig.dpi'] = 1000
plt.rcParams['figure.dpi'] = 1000
ax = fig.add_subplot(111, projection='3d')
ax.scatter(xs=x_data, ys=0, zs=y_data_1, c='#4d3333', s=12, alpha=1, label='English', marker='*')
ax.scatter(xs=x_data, ys=1, zs=y_data_2, c='#3333cc', s=12, alpha=1, label='Chinese', marker='o')
ax.scatter(xs=x_data, ys=2, zs=y_data_3, c='#ff1493', s=12, alpha=1, label='Math', marker='^')
ax.set_xticklabels([" ", " ", "Students", " ", " "], fontsize=20)
ax.set_yticklabels(["English", "Chinese", "Math"], fontsize=20)
ax.set_zlabel('Score', fontsize=16)
ax.set_xticks([0, 20, 40, 60, 80, 100])
ax.set_yticks([0, 1, 2])
ax.set_xlim(left=0, right=100)
ax.set_ylim(bottom=0, top=2)
plt.tick_params(labelsize=13)
plt.show()
if __name__ == '__main__':
csdn_plot_3D_scatter()

import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
import matplotlib;matplotlib.use('tkagg')
plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus']=False
data1 = np.arange(24).reshape((8, 3))
x1 = data1[:, 0]
y1 = data1[:, 1]
z1 = data1[:, 2]
data2 = np.random.randint(0, 23, (6, 3))
x2 = data2[:, 0]
y2 = data2[:, 1]
z2 = data2[:, 2]
fig = plt.figure()
ax = Axes3D(fig)
ax.scatter(x1, y1, z1, c='r', label='顺序点')
ax.scatter(x2, y2, z2, c='g', label='随机点')
ax.legend(loc='best')
ax.set_zlabel('Z', fontdict={'size': 15, 'color': 'red'})
ax.set_ylabel('Y', fontdict={'size': 15, 'color': 'red'})
ax.set_xlabel('X', fontdict={'size': 15, 'color': 'red'})
plt.show()