I were searching how create scatterplot between each column with each column. Similar question to this one and I followed the code from answer:
How to make a loop for multiple scatterplots in python?
What I done is:
columns = ['a','b','c','d','e','f'] for pos, axis1 in enumerate(columns): for axis2 in enumerate(columns[pos+1:]): plt.scatter(df.loc[:, axis1], df.loc[:, axis2].iloc[:,1])
But in this solution I’m getting everything on one single plot, I want to make it separately, how I can achieve that?
Advertisement
Answer
Yehla has a good solution, but if you want to graph each plot on the same figure, create a new plt.subplot()
each loop.
import math import numpy as np import pandas as pd import matplotlib.pyplot as plt df = pd.DataFrame(np.random.randint(0,100,size=(100, 4)), columns=list('ABCD')) col_count = 2 columns = list(df.columns) row_count = math.ceil((len(columns)*len(columns))/col_count) plt_dict = {} count = 1 for k,v in enumerate(columns): for column2 in columns[k:]: ax = plt.subplot(row_count,col_count,count) ax.set_title(f'{v} x {column2}') ax.scatter(df[v],df[column2]) count += 1 plt.show()