X 轴标签未显示在带有颜色条的 Pandas DataFrame 图中
X-axis label doesn't show on Pandas DataFrame plot with colorbar
我想制作一个带有颜色条的 pandas.DataFrame.plot。为了可重复性,这里我在堆栈溢出时使用 中的代码。
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import itertools as it
# [ (0,0), (0,1), ..., (9,9) ]
xy_positions = list( it.product( range(10), range(10) ) )
df = pd.DataFrame( xy_positions, columns=['x','y'] )
# draw 100 floats
df['score'] = np.random.random( 100 )
ax = df.plot( kind='scatter',
x='x',
y='y',
c='score',
s=500,
xlabel='x')
ax.set_xlim( [-0.5,9.5] )
ax.set_ylim( [-0.5,9.5] )
plt.tight_layout()
但是,在我的环境中,该图不会以某种方式显示 x 轴。所以我尝试在代码中添加 ax.set_xlabel("x label")
,但输出没有改变。
这是我的 Python 环境的包版本。
- Python 3.8.12
- pandas 1.4.0
- matplotlib 3.5.1
这个问题有什么建议吗?谢谢!
附加信息:我在 MacBook Pro M1 上使用 macOS Big Sur 版本 11.6。
你能试试吗:
fig, ax = plt.subplots()
cm = plt.cm.get_cmap('Greys')
sc = ax.scatter(df['x'], df['y'], s=500, c=df['score'],
vmin=df['score'].min(), vmax=df['score'].max(), cmap=cm)
cb = fig.colorbar(sc)
t = cb.set_label('score', rotation=-90)
ax.set_xlim( [-0.5,9.5] )
ax.set_ylim( [-0.5,9.5] )
ax.set_xlabel('x')
ax.set_ylabel('y')
plt.tight_layout()
plt.show()
输出:
我想制作一个带有颜色条的 pandas.DataFrame.plot。为了可重复性,这里我在堆栈溢出时使用
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import itertools as it
# [ (0,0), (0,1), ..., (9,9) ]
xy_positions = list( it.product( range(10), range(10) ) )
df = pd.DataFrame( xy_positions, columns=['x','y'] )
# draw 100 floats
df['score'] = np.random.random( 100 )
ax = df.plot( kind='scatter',
x='x',
y='y',
c='score',
s=500,
xlabel='x')
ax.set_xlim( [-0.5,9.5] )
ax.set_ylim( [-0.5,9.5] )
plt.tight_layout()
但是,在我的环境中,该图不会以某种方式显示 x 轴。所以我尝试在代码中添加 ax.set_xlabel("x label")
,但输出没有改变。
这是我的 Python 环境的包版本。
- Python 3.8.12
- pandas 1.4.0
- matplotlib 3.5.1
这个问题有什么建议吗?谢谢!
附加信息:我在 MacBook Pro M1 上使用 macOS Big Sur 版本 11.6。
你能试试吗:
fig, ax = plt.subplots()
cm = plt.cm.get_cmap('Greys')
sc = ax.scatter(df['x'], df['y'], s=500, c=df['score'],
vmin=df['score'].min(), vmax=df['score'].max(), cmap=cm)
cb = fig.colorbar(sc)
t = cb.set_label('score', rotation=-90)
ax.set_xlim( [-0.5,9.5] )
ax.set_ylim( [-0.5,9.5] )
ax.set_xlabel('x')
ax.set_ylabel('y')
plt.tight_layout()
plt.show()
输出: