fig = px.scatter_matrix(train_public, dimensions=["del_in_18month", "known_outstanding_loan", "known_dero", "pub_dero_bankrup"], color="isDefault") fig.show() 改为matplotlib.pyplot下画出来的图
时间: 2023-07-06 08:14:35 浏览: 45
可以使用matplotlib库中的scatter_matrix函数绘制散点矩阵图,代码如下:
```python
import pandas as pd
import matplotlib.pyplot as plt
# 读取数据
train_public = pd.read_csv('train_public.csv')
# 绘制散点矩阵图
pd.plotting.scatter_matrix(train_public[["del_in_18month", "known_outstanding_loan", "known_dero", "pub_dero_bankrup"]], c=train_public["isDefault"], figsize=(10,10))
# 设置横纵坐标轴标签
plt.xlabel("Features")
plt.ylabel("Features")
# 显示图像
plt.show()
```
这里使用了pandas库的scatter_matrix函数来绘制散点矩阵图,并通过c参数设置颜色(即类别),figsize参数设置图像大小。最后通过matplotlib库中的xlabel、ylabel和show函数设置坐标轴标签和显示图像。
相关问题
def scatter(self): self.scatter_frame = Frame(self.init_window_name) # 创建一个竖直滚动条 scrollbar = Scrollbar(self.scatter_frame, orient=tk.VERTICAL) scrollbar.pack(side=tk.RIGHT, fill=tk.Y) self.scatter_frame.place(x=10, y=460, width=750, height=310) fig = plt.figure() ax = fig.add_subplot(111) pd.plotting.scatter_matrix(self.df,alpha = 0.3,figsize = (10,10),grid = True,ax = ax) self.scatter_view = FigureCanvasTkAgg(fig,master = self.scatter_frame) self.scatter_view.draw() self.scatter_view.get_tk_widget().pack(side=tk.TOP, fill=tk.BOTH, expand=1) # 将滚动条绑定到FigureCanvasTkAgg上 self.scatter_view.configure(yscrollcommand=scrollbar.set) scrollbar.config(command=self.scatter_view.yview)我想在self.scatter_view画布上加一个滚轮,让图片不要被压缩显示,怎么改代码?
你可以在创建FigureCanvasTkAgg时,将其参数resize设置为True,这样就可以自动调整大小,避免图片被压缩显示。同时,你需要在scatter_frame上添加鼠标滚动事件的绑定,用来处理滚轮事件。
修改后的代码如下:
```python
def scatter(self):
self.scatter_frame = Frame(self.init_window_name)
# 创建一个竖直滚动条
scrollbar = Scrollbar(self.scatter_frame, orient=tk.VERTICAL)
scrollbar.pack(side=tk.RIGHT, fill=tk.Y)
self.scatter_frame.place(x=10, y=460, width=750, height=310)
fig = plt.figure()
ax = fig.add_subplot(111)
pd.plotting.scatter_matrix(self.df,alpha = 0.3,figsize = (10,10),grid = True,ax = ax)
# 将resize设置为True
self.scatter_view = FigureCanvasTkAgg(fig,master = self.scatter_frame, resize=True)
self.scatter_view.draw()
self.scatter_view.get_tk_widget().pack(side=tk.TOP, fill=tk.BOTH, expand=1)
# 将滚动条绑定到FigureCanvasTkAgg上
self.scatter_view.configure(yscrollcommand=scrollbar.set)
scrollbar.config(command=self.scatter_view.yview)
# 添加鼠标滚动事件的绑定
self.scatter_view.mpl_connect('scroll_event', self.on_scroll)
def on_scroll(self, event):
# 获取当前滚轮的方向
if event.button == 'up':
direction = 1
elif event.button == 'down':
direction = -1
else:
direction = 0
# 根据滚轮方向调整缩放比例
scale = 1.1
if direction:
x, y = event.x, event.y
ax = self.scatter_view.figure.axes[0]
if direction > 0:
# 放大
ax.set_xlim(xdata - scale * (xdata - ax.get_xlim()[0]),
xdata + scale * (ax.get_xlim()[1] - xdata))
ax.set_ylim(ydata - scale * (ydata - ax.get_ylim()[0]),
ydata + scale * (ax.get_ylim()[1] - ydata))
else:
# 缩小
ax.set_xlim(xdata - scale * (xdata - ax.get_xlim()[0]),
xdata + scale * (ax.get_xlim()[1] - xdata))
ax.set_ylim(ydata - scale * (ydata - ax.get_ylim()[0]),
ydata + scale * (ax.get_ylim()[1] - ydata))
self.scatter_view.draw()
```
fig = px.parallel_coordinates(df2) 需要什么样的数据集
`px.parallel_coordinates()` 函数需要一个包含多个列的数据集,其中每一列都应该包含具有相似数据类型的数据。通常,这个数据集应该满足以下条件:
- 每一列应该是数值型或者离散型的数据,例如整数、浮点数、布尔值或者分类变量等。
- 数据集中不应该包含缺失值,否则这些值可能会导致可视化结果出现问题。
- 数据集应该包含足够的样本数,以确保可视化结果具有一定的代表性。
下面是一个示例数据集:
```
import pandas as pd
data = {
'Feature1': [1, 2, 3, 4, 5],
'Feature2': [10.2, 12.4, 14.6, 16.8, 19.0],
'Feature3': ['A', 'B', 'C', 'D', 'E'],
'Feature4': [True, False, True, False, True],
'Label': ['Class1', 'Class2', 'Class1', 'Class2', 'Class1']
}
df = pd.DataFrame(data)
```
在这个示例数据集中,`Feature1` 和 `Feature2` 是数值型的数据,`Feature3` 和 `Feature4` 是离散型的数据,`Label` 是分类变量。你可以将这个数据集传递给 `px.parallel_coordinates()` 函数,以生成一个平行坐标图的可视化结果:
```
import plotly.express as px
fig = px.parallel_coordinates(df, color='Label')
fig.show()
```
运行上述代码,你应该可以看到一个包含多个平行线的可视化结果,其中每个平行线对应着数据集中的一个特征。