Pandas - 散点图 - cmap 标签的旋转
Pandas - scatter plot - rotation of cmap label
我正在通过 pandas 直接绘制简单的散点图。
我的数据框有 A、B、C 列。
我绘制 A 与 B 的关系图,并通过颜色可视化 C 值。
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import matplotlib as mpl
%matplotlib inline
代码:
ycol_label = 'B'
xcol_label = 'A'
f = df1.plot.scatter(x=xcol_label, y=ycol_label, c='C', cmap='coolwarm')
h = plt.ylabel(ycol_label)
h.set_rotation(0)
type(f)
如何更改最右侧的 C 标签的方向?
我想旋转它并显示为 B 标签显示(在最左侧)。
我什至很难 google 因为我不知道这个 最右边的元素
被称为(带有冷暖色标的那个)。我基本上想旋转该元素的标签。
我不知道如何使用 pandas 绘图,但是使用普通的 matplotlib 绘图它是这样工作的:
x = np.random.random(50)
y = np.random.random(50)
c = np.arange(50)
fig, ax = plt.subplots()
f = ax.scatter(x, y, c=c, cmap='coolwarm')
cbar = plt.colorbar(f)
ax.set_xlabel('x axis')
ax.set_ylabel('y axis', rotation=0)
cbar.set_label('z axis', rotation=0)
输出:
---编辑---
这是pandas绘图版本:
x = np.random.random(50)
y = np.random.random(50)
c = np.arange(50)
df1 = pd.DataFrame({'a': x, 'b': y, 'c': c})
ycol_label = 'b'
xcol_label = 'a'
f = df1.plot.scatter(x=xcol_label, y=ycol_label, c='c', cmap='coolwarm')
ff = plt.gcf()
cax = ff.get_axes()[1]
cax.set_ylabel('test', rotation=0)
h = plt.ylabel(ycol_label)
h.set_rotation(0)
type(f)
输出:
另一种使用 pandas 和一些底层 matplotlib 对象的解决方案。
x_column_label = 'A'
y_column_label = 'B'
color_column_label = 'C'
ax = df1.plot.scatter(x=x_column_label, y=y_column_label, c=color_column_label, cmap='coolwarm', figsize=(12,6), s=80)
print('================================================================================')
# Here ax is the AxesSubplot object
print(ax)
# Get the Figure object from the AxesSubplot object
f = ax.get_figure()
print(f)
# Get the objects on the axis
pc = ax.collections
print(pc)
print(len(pc))
# Assumes the colorbar was plotted last
color_bar = pc[-1].colorbar
color_bar.set_label(color_column_label, rotation=0)
h = ax.set_ylabel(y_column_label, rotation=0)
print(color_bar)
print('================================================================================')
我正在通过 pandas 直接绘制简单的散点图。
我的数据框有 A、B、C 列。
我绘制 A 与 B 的关系图,并通过颜色可视化 C 值。
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import matplotlib as mpl
%matplotlib inline
代码:
ycol_label = 'B'
xcol_label = 'A'
f = df1.plot.scatter(x=xcol_label, y=ycol_label, c='C', cmap='coolwarm')
h = plt.ylabel(ycol_label)
h.set_rotation(0)
type(f)
如何更改最右侧的 C 标签的方向?
我想旋转它并显示为 B 标签显示(在最左侧)。
我什至很难 google 因为我不知道这个 最右边的元素
被称为(带有冷暖色标的那个)。我基本上想旋转该元素的标签。
我不知道如何使用 pandas 绘图,但是使用普通的 matplotlib 绘图它是这样工作的:
x = np.random.random(50)
y = np.random.random(50)
c = np.arange(50)
fig, ax = plt.subplots()
f = ax.scatter(x, y, c=c, cmap='coolwarm')
cbar = plt.colorbar(f)
ax.set_xlabel('x axis')
ax.set_ylabel('y axis', rotation=0)
cbar.set_label('z axis', rotation=0)
输出:
---编辑---
这是pandas绘图版本:
x = np.random.random(50)
y = np.random.random(50)
c = np.arange(50)
df1 = pd.DataFrame({'a': x, 'b': y, 'c': c})
ycol_label = 'b'
xcol_label = 'a'
f = df1.plot.scatter(x=xcol_label, y=ycol_label, c='c', cmap='coolwarm')
ff = plt.gcf()
cax = ff.get_axes()[1]
cax.set_ylabel('test', rotation=0)
h = plt.ylabel(ycol_label)
h.set_rotation(0)
type(f)
输出:
另一种使用 pandas 和一些底层 matplotlib 对象的解决方案。
x_column_label = 'A'
y_column_label = 'B'
color_column_label = 'C'
ax = df1.plot.scatter(x=x_column_label, y=y_column_label, c=color_column_label, cmap='coolwarm', figsize=(12,6), s=80)
print('================================================================================')
# Here ax is the AxesSubplot object
print(ax)
# Get the Figure object from the AxesSubplot object
f = ax.get_figure()
print(f)
# Get the objects on the axis
pc = ax.collections
print(pc)
print(len(pc))
# Assumes the colorbar was plotted last
color_bar = pc[-1].colorbar
color_bar.set_label(color_column_label, rotation=0)
h = ax.set_ylabel(y_column_label, rotation=0)
print(color_bar)
print('================================================================================')